我最近建造在C CPU实现霍夫曼编码++。 我也为了比较次构建的CUDA GPU的版本,但在测试CPU的时候,我遇到了一个问题:
当压力测试通过压缩大文件,例如一个97MB的文本文件,在字母和其他各种ASCII字符几乎每一封信,我的CPU实施将历时约为83秒,第一次执行。 在此之后,时间显著下降到1.7秒。 注:我只是定时频率的CPU的计算,该字符串的未编码和写入文件。
任何想法如何可能呢? 我关闭所有文件指针,不应该尽可能缓存什么,因为我知道。
让我知道是否需要任何的源代码,谢谢。
我最近建造在C CPU实现霍夫曼编码++。 我也为了比较次构建的CUDA GPU的版本,但在测试CPU的时候,我遇到了一个问题:
当压力测试通过压缩大文件,例如一个97MB的文本文件,在字母和其他各种ASCII字符几乎每一封信,我的CPU实施将历时约为83秒,第一次执行。 在此之后,时间显著下降到1.7秒。 注:我只是定时频率的CPU的计算,该字符串的未编码和写入文件。
任何想法如何可能呢? 我关闭所有文件指针,不应该尽可能缓存什么,因为我知道。
让我知道是否需要任何的源代码,谢谢。
第一次运行之后,文件内容是由系统缓存(并为所有进程所共享),所以下一次运行你实际上是从存储器读取文件。