Anwendung wird nach ca. 130 Schleifenduchläufen langsam
Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Anwendung wird nach ca. 130 Schleifenduchläufen langsam
Hallo,
ich habe ein Problem. Und zwar wird mein Programm nach ca. 130 While Schleifendurchläufen etwa halb so schnell. Und ich verstehe nicht warum. Denn eigentlich sollte die Anzahl der Durchläufe keine Resourcen verbrauchen, oder ? Ich habe zwar ein Schieberegister drin, welches ein immer längeres Array erstellt. Dieses wrd aber mit hilfe einer Case Strucktur rechtzeitig beendet. Was auch funktioniert, da ich mir die Arraylänge zum Test anzeigen lassen habe.
Ansonsten stekcne in der Schleife kleinerlei von der Anzahl der Schleifenwiederholungen abhänge Elemente.
Hat jemand eine Idee woran sowas sonst noch liegen kann.
Anwendung wird nach ca. 130 Schleifenduchläufen langsam
Da sag ich doch mal einkalt:
' schrieb:Ich habe zwar ein Schieberegister drin, welches ein immer längeres Array erstellt.
Genau dieses Array respektive dieses Verfahren zum Speichern von Daten in Arrays ist am Langsamerwerden Schuld.
Du musst das Array vor Beginn der Schleife mit dem Maximalwert vorbesetzen und innerhalb der Schleife die Daten mit "In Array ersetzen" ins Array bringen - nicht mit "Array erstellen" oder "An Array anhängen".
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
16.03.2009, 13:39 (Dieser Beitrag wurde zuletzt bearbeitet: 16.03.2009 13:42 von amin.)
Anwendung wird nach ca. 130 Schleifenduchläufen langsam
' schrieb:Da sag ich doch mal einkalt:
Genau dieses Array respektive dieses Verfahren zum Speichern von Daten in Arrays ist am Langsamerwerden Schuld.
Du musst das Array vor Beginn der Schleife mit dem Maximalwert vorbesetzen und innerhalb der Schleife die Daten mit "In Array ersetzen" ins Array bringen - nicht mit "Array erstellen" oder "An Array anhängen".
Also wie gesagt stoppe die weitere Erstellung des Array, was ich auch jetzt zum test mittels der Arraygrösse überprüft habe.
Das Array vorher auf 0 zu defnieren gefällt mir nicht so richtig, da ich dieses Grafisch innerhalb der Schleife ausgebe, und es sich so schick aufbaut. Aber falls Du wirklich meinst dies das Problem ist, muss ich mir was anderes überlegen.
Anwendung wird nach ca. 130 Schleifenduchläufen langsam
Hallo,
hab mal kurz ein File erstellt, damit man sieht wie ich das mit dem Array gelöst habe (also vom Schema her).
Die Anwendung ist zwar total einfach und daher bekomme ich keine sichbare verlangsamung. Wenn ich aber in den Taskmanager von Windows gehe, habe ich auch hier eine CPU Auslast von 100%.
Jedoch ist mir nun aufgefallen, das ich selbst für eine Schleife, die praktisch gar nichts tut eine CPU-Auslast von 100% bekomme.
Jetzt meine Frage, muss ich zwangsläufig für Schleifen Timer benutzen, damit sie nicht alle Resourcen nehmen die da sind. Oder brauche ich schlicht und ergreifend einen schnelleren Rechner:
Anwendung wird nach ca. 130 Schleifenduchläufen langsam
Wenn du eine Schleife ohne Timer verwendest, will LabVIEW sie so schnell wie möglich durchlaufen. Dazu verwendet es sämtlichen zur verfügung stehende Rechenkapazität. Ein schnellerer Rechner würde nur dazu führen, dass du mehr Schleifendurchläufe pro Zeiteinheit schaffst. Die CPU bleibt ausgelastet.
LG
Torsten
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
Anwendung wird nach ca. 130 Schleifenduchläufen langsam
Hallo amin,
Deine While-Schleife braucht eine Zeitverzögerung sonst wird sie, sobald sie fertig ist wieder ausgeführt -- und zwar so schnell Dein Rechner das kann -- und das schnellste was er kann sind 100%.