2

我最近在 C++ 中构建了 Huffman 编码的 CPU 实现。为了比较时间,我还在 CUDA 中构建了一个 GPU 版本,但是在测试 CPU 的时间时遇到了一个问题:

当通过压缩大文件进行压力测试时,例如一个 97mb 的文本文件,其中几乎包含字母表中的每个字母和各种其他 ascii 字符,我的 CPU 实现在第一次执行时大约需要 8.3 秒。之后,时间显着下降到 1.7 秒。注意:我只对 CPU 的频率计数进行计时,而不是对字符串的编码和写入文件进行计时。

有什么想法吗?我正在关闭所有文件指针,据我所知不应该缓存任何东西。

如果需要任何源代码,请告诉我,谢谢。

4

1 回答 1

5

第一次运行后,文件内容被系统缓存(并由所有进程共享),因此下一次运行实际上是从内存中读取文件。

于 2012-04-30T04:59:24.930 回答