【问题标题】:Large amounts of file handles to large files - potential problems?大文件的大量文件句柄 - 潜在问题?
【发布时间】:2011-06-01 20:31:09
【问题描述】:

在程序的整个生命周期(比如一周左右)内保持打开 3GB+ 文件的 512 个文件句柄会导致 32 位 Linux 出现问题吗?视窗?

潜在的解决方法:打开/关闭文件句柄的性能损失有多严重?

【问题讨论】:

    标签: windows linux file handle


    【解决方案1】:

    文件的大小无关紧要。但是,文件描述符的数量确实如此。例如,在 Mac OS X 上,默认限制是每个进程打开 256 个文件,因此您的程序将无法运行。

    【讨论】:

    • 运行ulimit -a,查看open files
    【解决方案2】:

    我不了解 Linux,但在 Windows 中,512 个文件对我来说似乎那么多。但根据经验,超过一千个就太多了。 (虽然我不得不说我没有亲眼看到任何开放超过 50 个的程序。)

    并且打开/关闭句柄的成本并没有那么大,除非你每次都想读/写少量的数据,在这种情况下它太高了,你应该缓冲你的数据。

    【讨论】:

    • 我想我可以打开/关闭它们,但我更愿意消除开销。
    • 在这种情况下,请保持文件打开 - 只是不要打开更多。 :)
    • 几千个文件句柄在 Windows 上几乎不是问题。句柄表设计为支持 2^24 个句柄。当然,每个对象也需要一些内存,因此您可能在达到该限制之前就耗尽了内存。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-11
    • 2013-09-07
    相关资源
    最近更新 更多