Использование Ubuntu 16.04 с ядром 4.16.7.
Я пытаюсь протестировать SSD, используя код, который я нашел здесь: https://cristianadam.eu/20160410/c-plus-plus-i-slash-o-benchmark/
Этот тест использует три разных API (C, C ++ и POSIX) для выполнения операции копирования файлов и измеряет время, затрачиваемое на это. Однако в моей файловой системе не создаются файлы вывода. Также об ошибках не сообщается. Предполагается, что тест генерирует имя выходного файла, добавляя «.copy» к имени входного файла.
Обратите внимание, что я также пробовал эти тесты с обычным жестким диском, и он тоже не работал. Кроме того, попытался указать полный путь как к исходному, так и к целевому файлу, но проблема не исчезла. Я также должен упомянуть, что входной файл существует, когда тесты запускаются, и тест выводит сообщение на стандартный вывод с указанием затраченного времени, но, как я уже сказал, нет выходного файла в файловой системе.
Еще одна интересная вещь заключается в том, что если выходной файл уже существует при запуске теста, он удаляется, что снова приводит к несуществующему выходному файлу.
Также стоит упомянуть, что файл создается, если для записи в него используется оператор «<<» (по крайней мере, для теста C ++, который я пробовал). Однако я бы хотел избежать этого подхода.
Буду признателен за любую помощь.
Заранее благодарю.
Проверьте код в основной цикл
for (unsigned int i = 0; i < times; ++i)
{
total += measure::ms(it->second, args[2].c_str(), dest.c_str(), inBuffer);
::unlink(dest.c_str());
}
::unlink(dest.c_str())
удаляет файл после теста.
Если Вы запускаете тест в течение очень долгого времени, Вы видите файлы во время выполнения:
$ test_io.exe c big.bin 10000 &
$ ls -la
-rw-r--r-- 1 user group 134217724 Jul 23 13:45 big.bin
-rw-r--r-- 1 user group 70254592 Jul 23 13:54 big.bin.copy