我有100000个1kb的文件。 而一个读取它们的程序 – 它真的很慢。 提高性能的最好办法是把它们放在虚拟硬盘上。 但这是一个脆弱的解决scheme,每次重新启动都需要重新设置虚拟磁盘。 (并且文件复制也很慢)
我的第二个最好的想法是连接文件和工作。 但这不是微不足道的。
有更好的解决scheme吗?
注意:我需要避免程序中的依赖,甚至Boost。
如何获取btrfs subvol的recursion快照?
PATH_NOT_FOUND和name_NOT_FOUND有什么区别
windows文件系统:当删除并重新创build时,文件的创build时间不会改变
如何不进入文件系统设备驱动程序的死锁?
在ext4上覆盖一个小文件primefaces?
如何:检查不可用networking共享时防止超时 – C#
有什么办法可以强制快速的文件系统的内容types确定
未能修改NTFS的主文件表(MFT)中的文件logging
linux文件系统基准testing的最佳实践
切丝:不适用于日志FS?
您可以通过存储磁盘上连续的文件进行优化。
在一个有足够空间的磁盘上,最简单的方法就是读一个tar归档文件。
除此之外,还有一个用于预读的debian软件包。
您可以使用该工具
剖析软件的正常运行
编辑访问的文件的lsit(由readahead检测)
然后,您可以使用该文件列表调用readahead(它将按照磁盘顺序排列文件,从而使吞吐量最大化并缩短寻道时间)
不幸的是,自从我使用这些软件以来,已经有一段时间了,所以我希望你们可以通过谷歌搜索软件包
这是我现在看到的:
sudo apt-get install readahead-fedora
祝你好运
如果你的文件是静态的,我同意把它们放在一起,然后把它放在RAM磁盘中。 直接从TAR文件中读取可能会更快,但可以测试。
编辑::而不是TAR,你也可以尝试创建一个squashfs卷。
如果你不想这样做,或者仍然需要更多的性能,那么:
把你的数据放在SSD上。
开始调查一些FS性能测试,从EXT4,XFS等开始…
总结以上是内存溢出为你收集整理的如何加快在Linux上阅读固定的一组小文件?全部内容,希望文章能够帮你解决如何加快在Linux上阅读固定的一组小文件?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)