Dauer einer Schleife ermitteln...Fehler ???

Cybered

Admiral Special
Mitglied seit
22.09.2002
Beiträge
1.625
Renomée
14
Standort
Unimatrix-Zero
Hi,
fange gerade mit Java an und wollte einfach mal die Dauer einer Schleife bestimmen.
Ich lasse einfach von 1- 10000000 zählen und dann die Zeit ausgeben....hier der Code ->

//Programm zur Messung der Ausführzeit einer Zählschleife

public class Laufzeit {
public static void main(String[] args) {
int schleife = 1;
System.out.println ("Programmlaufzeit in ms");
do
{
long zeit1 = System.currentTimeMillis();
for(int i = 1; i <= 10000000; i++);
long zeit2 = System.currentTimeMillis();
System.out.println( zeit2 - zeit1 );
schleife++;
}
while ( schleife < 25);
}
}


Wenn ich das Programm aber durchlaufen lasse, varrieren die Ergebnisse um 100%, mal sind es 16ms, mal sind es 32ms Ausführzeit, woran liegt das ???
Kanns mir nicht erklären *noahnung*
thx4all
Cybered
 
Die Gründe für unerschiedliche Laufzeit sind:
- Unregelmäßiges Aktivieren des Garbage Collectors durch die JVM
- Just in Time (JIT) Compiler der JVM
- Unterschiedliche Zuteilung von Rechenzeit durch das OS
 
In dem Zeitbereich sind die Abweichungen durch andere Effekte einfach viel größer als die Zeit selbst. Häng mal noch 2 0en an, dann dürften die Ergebnisse schon weniger abweichen.
 
abweichung ist nun geringer....größter Wert sind 2704...kleinster ist 2421 ms....
nun ja...ist ein Anfang :]
 
Zurück
Oben Unten