Schleifenlaufzeit exakt messen - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Schleifenlaufzeit exakt messen (/Thread-Schleifenlaufzeit-exakt-messen) |
Schleifenlaufzeit exakt messen - achim @ FZK - 23.07.2009 15:26 Hallo zusammen, ich hab mal wieder eine Frage: Ich möchte irgendwie die Laufzeit eines Schleifendurchlaufs messen und über ein anderes VI in Abhängigkeit von CPU-Auslastung und anderen Schleifen 'regeln'. Soll bedeuten ich möchte die im Durchlauf i=n in Abhängkeit der Laufzeit in i=n-1 und anderer Umstände die Schleifenlaufzeit anpassen. Mein versuch dies mit Zeitstempeln und einer normalen While-Schleife zu machen funktioniert aber nicht so wirklich gut... (Anbei mein Testaufbau) Es scheint als wäre die Zeitmessung auf diese Weise zu ungenau. Typischerweise rechne ich mit Laufzeiten zwischen 100 und 500ms. Bei diesem kleinem und rechen unintensievem Testaufbau schwankt die gemessene Zeit um mehrere 100%. Ohne jetzt jemals was mit getimten Schleifen gemacht zu haben, müsste dies doch eigentlich eine Anwendung dafür sein, oder? Kann mir hierzu vielleicht schnell ein Beispiel zusammen schustern? Oder hat jmd eine andere Idee für mein Problem? Kurzfassung: Ich möchte die reine Rechenzeit in der Schleife messen und die Laufzeit einer Schleife vorgeben können. Viele Grüße Achim Schleifenlaufzeit exakt messen - IchSelbst - 23.07.2009 16:34 Such mal nach QueryPerformanceCounter Schleifenlaufzeit exakt messen - jg - 23.07.2009 19:50 2 Punkte: 1. "Get Date/Time In Seconds" hat meines Wissens nach je nach Betriebssystem/Prozessor (oder sogar generell) nicht ms-Auflösung. Machs mal mit Tick-Count, dann werden dir die ms schon mal stabil angezeigt, solange du "SollSim" nicht änderst: [attachment=19924] 2. Wenn du natürlich "SollSim" während änderst, während das Programm läuft, dann wird es immer dauern, bis der Schleifendurchlauf wieder stabil ist. Denn du hast am Ende "Wait Until Next ms Multiple", und das nächste ganzzahlige Vielfache des neuen Schleifendurchlaufs, das kann natürlich dauern. Alternative: Ein "normales" Wait" parallel legen: [attachment=19925] Gruß, Jens |