zoukankan      html  css  js  c++  java
  • 【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,做永久性的更改:
  • 相关阅读:
    双链表
    单链表
    二叉树的遍历
    leetcode-9. 回文数
    leetcode-8. 字符串转换整数 (atoi)
    leetcode-7. 整数反转
    leetcode-6. Z 字形变换
    leetcode-5. 最长回文子串
    manacher-线性查找算法-(最长回文子串问题)
    bfprt-线性查找算法-(topK问题)
  • 原文地址:https://www.cnblogs.com/xianghang123/p/2355408.html
Copyright © 2011-2022 走看看