Cześć. Czy testowanie wydajności poszczególnych funkcji języka w nieskończonej pętli ma sens?
Dlaczego akurat w nieskończonej pętli? ciężko jest mi wyłapać zużycie CPU programu, który wykonuje się w sekundę, a większość programów tak właśnie się robi.
Program z którego korzystam (ProcessExplorer) pokazuje zużycie CPU w realtime i uzycie CPU pokazuje się jedynie na sekundę(a i też nie zawsze).
Przykładowy program to zapis 125MB randomowego tekstu do pliku w javie.
Pętla for w tym przypadku ma symulować środowisko wykonywanie takiego zadania:
while(true) {
try (FileOutputStream fos = new FileOutputStream("C:\\io/test.txt")) {
fos.write(new byte[128000000]);
} catch (IOException e) {
//logger
}
}
Zużycie CPU jest w tym przypadku dobrze widoczne w programie ProcessExplorer i mogę wykonywać badania.
Pytanie czy taki wynik zużycia nie będzie przekłamany.