【perl】打開多個文件——文件句柄的使用


經常要講一個文件分割成許多小文件,如果每次判斷后要進行“打開文件句柄—》寫入數據—》關閉文件句柄”,這樣重復的打開、關閉文件句柄是很耗時間的。

進程經常會處於“S”睡眠狀態。

如果同時打開多個文件,再判斷要寫入哪個文件,則可以節省CPU等待的時間。

for my $i (0..99)

{

  $o="OUT".$i;

  open $o,">test.$i" or die $!;

  print $o "test";

  close $o;

}

 

linux允許同時打開文件數量:

/proc/sys/fs/file-max

 

附:

如何修改linux內核默認文件描述符最大同時打開數量?

源代碼文件已經找到
file-max <kernel-path>;/fs/file.c
inode-nr <kernel-path>;/fs/innode.c

如果系統不是精簡的內核可以用:以下方法修改
ulimit -n  <可以同時打開的文件數>;  設置用戶可以同時打開的最大文件數(max open files)

     # echo "65536"  >; /proc/sys/fs/file-max  # 適用於 2.2 和 2.4 版內核
     # echo "131072" >; /proc/sys/fs/inode-max # 僅適用於 2.2 版內核
或將下列內容放入 /etc/sysctl.conf,做永久性的更改:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM