我有100000个1kb的文件。 而一个读取它们的程序 – 它真的很慢。 提高性能的最好办法是把它们放在虚拟硬盘上。 但这是一个脆弱的解决scheme,每次重新启动都需要重新设置虚拟磁盘。 (并且文件复制也很慢)
我的第二个最好的想法是连接文件和工作。 但这不是微不足道的。
有更好的解决scheme吗?
注意:我需要避免程序中的依赖,甚至Boost。
如何获取btrfs subvol的recursion快照?
PATH_NOT_FOUND和NAME_NOT_FOUND有什么区别
Windows文件系统:当删除并重新创build时,文件的创build时间不会改变
如何不进入文件系统设备驱动程序的死锁?
如何:检查不可用networking共享时防止超时 – C#
Linux文件系统基准testing的最佳实践
切丝:不适用于日志FS?
您可以通过存储磁盘上连续的文件进行优化。
在一个有足够空间的磁盘上,最简单的方法就是读一个tar归档文件。
除此之外,还有一个用于预读的debian软件包。
您可以使用该工具
剖析软件的正常运行
编辑访问的文件的lsit(由readahead检测)
然后,您可以使用该文件列表调用readahead(它将按照磁盘顺序排列文件,从而使吞吐量最大化并缩短寻道时间)
不幸的是,自从我使用这些软件以来,已经有一段时间了,所以我希望你们可以通过谷歌搜索软件包
这是我现在看到的:
sudo apt-get install readahead-fedora
祝你好运
如果你的文件是静态的,我同意把它们放在一起,然后把它放在RAM磁盘中。 直接从TAR文件中读取可能会更快,但可以测试。
编辑::而不是TAR,你也可以尝试创建一个squashfs卷。
如果你不想这样做,或者仍然需要更多的性能,那么:
把你的数据放在SSD上。
开始调查一些FS性能测试,从EXT4,XFS等开始…
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。