Я собираюсь сначала признать, что это для проекта класса, так как это будет довольно очевидно. Мы должны делать чтение для проверки размера блока файловой системы. Моя проблема заключается в том, что время, затраченное на это, кажется линейным, без каких-либо шагов, как я ожидал.Исследование размера блока файловой системы
Я приурочивать читать так:
double startTime = getticks();
read = fread(x, 1, toRead, fp);
double endTime = getticks();
где getticks использует инструкции RDTSC. Я боюсь, что есть кеширование/предварительная выборка, из-за чего чтение не требует времени во время теста. Я попытался создать случайный файл между каждым исполнением моей программы, но это не облегчает мою проблему.
Каков наилучший способ точного измерения времени, затраченного на чтение с диска? Я уверен, что размер моего блока равен 4096, но как я могу получить данные для поддержки?
Вы хотите что-то дать размер блока или совет по улучшению вашего эксперимента, чтобы угадать размер блока по времени? –
Наверное, я ищу экспериментальную помощь. У меня возникли проблемы с получением C, чтобы делать то, что я хочу с помощью ввода-вывода. – plor
Проверьте fcntl (.., F_NOCACHE, ..), чтобы полностью отключить кеширование. – rpj