gpt4 book ai didi

c++ - 读取顺序文件 - 压缩文件与未压缩文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:47:48 28 4
gpt4 key购买 nike

我正在寻找从磁盘读取顺序文件的最快方法。我在一些帖子中读到,如果我使用 lz4 等压缩文件,我可以获得比读取平面文件更好的性能,因为我将最大限度地减少 i/o 操作。

但是当我尝试这种方法时,扫描 lz4 压缩文件的性能比扫描平面文件差。上面的lz4demo我没有试过,但是找了一下,我的代码很相似。

我找到了这个基准: http://skipperkongen.dk/2012/02/28/uncompressed-versus-compressed-read/ http://code.google.com/p/lz4/source/browse/trunk/lz4demo.c?r=75

与未压缩文件相比,读取压缩顺序文件真的有可能提高性能吗?我做错了什么?

最佳答案

是的,可以通过使用压缩来提高磁盘读取。

如果您使用多线程读取器,则最有可能发生这种效果:当一个线程从磁盘读取压缩数据时,另一个线程解码内存中的前一个压缩 block 。

考虑到 LZ4 的速度,解码操作很可能在另一个线程完成读取下一个 block 之前完成。这样,您将实现与测试文件的压缩率成比例的带宽改进。

显然,在进行基准测试时还需要考虑其他影响。例如,HDD的寻道时间比SSD大几个数量级,在糟糕的情况下,它可以成为时序的主导部分,将任何带宽优势降低为零。

关于c++ - 读取顺序文件 - 压缩文件与未压缩文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19789027/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com