如何在Linux上加快读取固定的小文件集?

| 我有100 \'000 1kb文件。而读取它们的程序-确实很慢。 我提高性能的最好方法是将它们放在ramdisk上。 但这是一个脆弱的解决方案,每次重新启动都需要重新设置虚拟磁盘。 (并且文件复制也很慢) 我的第二个好主意是连接文件并使用它。但这不是小事。 有更好的解决方案吗? 注意:我需要避免程序中的依赖关系,甚至Boost。     
已邀请:
        您可以通过将连续文件存储在磁盘上来进行优化。 在具有足够可用空间的磁盘上,最简单的方法是改为读取tar存档。 除此之外,/曾经有一个用于'readahead \'的debian软件包。 您可以使用该工具 剖析软件的正常运行 编辑所访问文件的丢失(通过预读检测) 然后,您可以使用该文件列表来调用readahead(它将按磁盘顺序对文件进行排序,从而使吞吐量最大化,寻道时间最小化) 不幸的是,自从我使用这些工具已经有一段时间了,所以我希望您可以用Google搜索到可替换的软件包 这似乎是我现在发现的:
sudo apt-get install readahead-fedora
祝好运     
        如果您的文件是静态的,我同意将它们压缩,然后将其放在RAM磁盘中。直接从TAR文件中读取可能更快,但是您可以对其进行测试。 编辑::代替TAR,您也可以尝试创建squashfs卷。 如果您不想这样做,或者仍然需要更高的性能,请执行以下操作: 将您的数据放在SSD上。 开始研究一些FS性能测试,从EXT4,XFS等开始...     

要回复问题请先登录注册