Я измеряю скорость жесткого диска с помощью написанной мной программы. (Это своего рода домашнее задание, поэтому мне не нужны рекомендации о существующих инструментах для этого).
Я делаю это с помощью следующего фрагмента кода:
for(int attemptNumber =0; attemptNumber < ATTEMPTS; attemptNumber++) {
long start = System.currentTimeMillis();
BufferedReader bf = new BufferedReader(new FileReader(FILENAME));
int c = 0;
while((c = bf.read()) != -1) {
}
long end = System.currentTimeMillis();
System.out.println(end - start);
}
На выходе первое число обычно в 3 раза больше любого из следующих:
14234
5130
4859
... etc
При перезапуске приложения я получаю те же результаты: первое чтение происходит примерно в 3 раза медленнее. Почему это происходит?
РЕДАКТИРОВАТЬ: Я не уверен, что это правильный SO сайт, чтобы спросить, где я должен опубликовать это?