我在写一个应用程序,其中磁盘性能很有趣。我以前使用的旧的,机械硬盘和使用的技术,this thread明确衡量业绩前缓存:以编程方式清除Linux中安装的(SSD)磁盘上的缓存
// Clear cache for benchmarking
sync();
std::ofstream ofs("/proc/sys/vm/drop_caches");
ofs << "3" << std::endl;
ofs.close();
运作良好,并给了我预期的结果 - 的〜100 MB/s的测量盘连续读取速度清理缓存时,缓存独立时会高出许多倍。
有一天,我安装了一个SSD盘,安装在/ media /下。在新的计算机重新启动后,第一对测量结果与预期的一样(约300 MB/s),但当缓存开始时,它们显然要高得多。
我现在的问题是,自从将应用程序移动到SSD之后,以前使用的代码行无效。那个缓存的行为方式可能不同吗?任何我需要做的不同来清除它?现在唯一可行的就是重启电脑。
给那个downvoted这个的人:请留下评论,并指出为什么我可以修复它。 –
奇怪的是,这些磁盘应该具有相同的行为,因为缓存位于操作系统的更高层......可能是其他内容,比如读取SSD上的缓存(注意:我甚至不确定它们是否有一个.. 。)? –
@ KarolyHorvath:你能详细说明一下读取缓存的想法吗?我对这些事情大部分都是新手。 –