Kein guter Anhaltspunkt...nufan hat geschrieben:Tja... so wars in dem Beispiel im Internet auch angegeben. Und viel mehr Anhaltspunkte hab ich nicht.fat-lobyte hat geschrieben:Was sollen denn die Backslashes??
Ich glaube, ich verstehe das Problem eigentlich nicht, dass Du da lösen möchtest. Da ist viel Sourcecode, der irgendwas macht, was genau möchtest Du überhaupt messen?
Wofür steht das h in %hu?nufan hat geschrieben:Es "sollte" die benötigte Zeit in Millisekunden und den 1. und den 2. Zeitwert ausgeben.Code: Alles auswählen
printf ("\n\n\nZeit: %hu ms, 1: %hu, 2: %hu", diff, milli1, milli2);
Wenn Du einen Unterschied messen möchtest, dann solltest Du ein Programm machen, was zweimal die gleiche Aufgabe löst und dann die Zeiten ausgibt - ich kann aus Deinem Programm immernoch nicht erkennen, wo Du irgendwas vergleichen möchtest!?nufan hat geschrieben:Hab den Wert jetzt mal auf 100.000 gesetzt und bekomm eine Differenz von 158 ms! Aber eigentlich sollte ja auch schon die Zuweisung in der Schleife einen messbaren Unterschied machen, oder? Die Berechnung dauert jetzt ca 5 Sekunden. Jetzt muss ich die auch noch berechnen.
100000 Zuweisungen in einer Schleife... Das ist ein if, das goto wird von der Prozessorpipe gekillt, ein inc und eine zuweisung. Seien wir großzügig und schlagen wir 3 Takte an, also 300000 Takte. Nehmen wir der Einfachheit halber an, dass Deine CPU 1GHz hat, dann sind das 0,0003 Sekunden Laufzeit für diese Schleife.nufan hat geschrieben:Ich denke, dass eher bei der Berechnung der 2. Zeit was nicht stimmt. Das Programm macht derzeit nichts, außer einem 100.000er Array Werte von 100.000 bis 1 zuzuweisen, vorher und nachher die Zeit auszulesen, die Werte zu subtrahieren und ausgeben.fat-lobyte hat geschrieben:Irgendwann muss der Computer doch zum rechnen anfangen.
Da Deine Schleife nicht optimiert geschrieben wurde, verdoppelt oder verdreifacht sich die Zeit vielleicht. Also sagen wir 0,001s. Wenn man den Linuxkernel auf eine Taktung von 100Hz einstellt, dann kann er Zeitunterschiede von 0,01s so abschätzen (!= messen).
Lass es mich so formulieren: Deine Aufgabe ist für eine moderne CPU nichtmals ein Grund den Energiesparmodus zu verlassen...
Pack da eine Schleife drumrum, die die 10.0000 Zuweisungen 10.000mal ausführt. Das sollte sich je nach CPU zwischen 5-25 Sekunden bewegen.