Я пишу приложение, где производительность диска интересна. Ранее я использовал более старый механический диск и использовал технику в этот поток для очистки кеша перед измерением производительности:
// Clear cache for benchmarking
sync();
std::ofstream ofs("/proc/sys/vm/drop_caches");
ofs << "3" << std::endl;
ofs.close();
Это сработало хорошо и дало ожидаемые результаты — измеренная скорость последовательного чтения с диска составила ~ 100 МБ/с при очистке кеша, что во много раз выше, когда кеш не трогали.
На днях я установил SSD-диск, смонтированный в /media/. После новой перезагрузки компьютера первые несколько измерений оказались такими, как и ожидалось (около 300 МБ/с), но когда кеш срабатывает, они, очевидно, намного выше.
Теперь моя проблема заключается в том, что строки кода, которые я ранее использовал, не действуют после переноса приложения на SSD. Может быть, этот кеш ведет себя по-другому? Что-то мне нужно сделать по-другому, чтобы очистить его? Единственное, что сейчас работает, это перезагрузка компьютера.