我有一个时间紧迫的 CPython 例程,它读取大型二进制文件以生成动态频谱,如果文件之前没有缓存,则速度会更慢。当我使用vmtouch
预缓存时,第一个文件需要约 14-16 秒来缓存完整的 2 GB 文件,但下一个文件的速度会慢一些(需要约 52 秒)。
- 由于例程需要两个 2 GB 文件进行处理,是否有任何方法可以更快地预缓存这些文件?
系统详细信息:
易失性内存:16GB
Ubuntu 版本:18.04.5 LTS
第一个文件vmtouch
输出
vmtouch -vt First_Large_binary.bin
[OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO] 512000/512000
Files: 1
Directories: 0
Touched Pages: 512000 (1G)
Elapsed: 14.896 seconds
第二个文件vmtouch
输出
vmtouch -vt Second_Large_binary.bin
[OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO] 512000/512000
Files: 1
Directories: 0
Touched Pages: 512000 (1G)
Elapsed: 52.126 seconds