經常要講一個文件分割成許多小文件,如果每次判斷后要進行“打開文件句柄—》寫入數據—》關閉文件句柄”,這樣重復的打開、關閉文件句柄是很耗時間的。
進程經常會處於“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,做永久性的更改: |