LabVIEWForum.de - Windows Taskleiste friert ein nach Programmstart

LabVIEWForum.de

Normale Version: Windows Taskleiste friert ein nach Programmstart
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo in die Runde.

ich arbeite mit LV 7.0 und habe ein Projekt übernommen, das aus meiner Sicht schon etwas umfangreicher ist. Aber darum geht es nicht.
Das Programm läuft und wird für Messzwecke bereits eingesetzt.
Allerdings verhält es sich so, dass nach dem Drücken des "Run"-Buttons die Windowstaskleiste einfriert. Der Windows-Explorer selbst läuft aber noch. Wenn ich mit Alt-Tab zu anderen Programmen wechsele funktioniert alles super und die Taskleiste ist "frei". Aber wenn ich wieder zu meinem LabVIEW-Programm wechsele friert sie wieder ein. Zunächst dachte ich, dass die CPU ausgelastet ist, aber weit gefehlt. Die CPU-Auslastung ist nicht auffallend.
Ich vermute mal ganz stark, dass das Programm suboptimal programmiert wurde. Hier hoffe ich auf ein paar Anregungen von euch das zu ändern.

Folgende Bemerkungen zu meiner Programmierung:
- alle Whileschleifen habe ich mit einer Uhr versehen
- das Blockdiagramm ist sehr verschachtelt
- ein Sub-Vi wird sehr häufig aufgerufen, dabei werden zwei Werte immer mit übergeben, diese verbinde ich als lokale Variable
d.h zwei zu Beginn initialisierte Variablen werden im Laufe des Programms über "Lokale Variablen" 30-40 Mal aufgerufen. Ist das günstig aus eurer Sicht? Mit Strippen kann ich das nicht alles machen, da es dann zu unübersichtlich wird.

Nun habe ich hier im Forum schon gelesen, dass Propertynodes nicht gerade Speichergünstig sind. Gilt das auch, wenn ich nur von ihnen lesen will?

Was ist generell günstiger? Lokale Variable oder Propertynode oder Referenz mit Eigenschaftsknoten?

Vielleicht habt ihr einen Tipp für mich.

Grüße
Marcus

PS: Wenn ich mit dem Applicationbuilder eine Anwendung aus dem Programm gemacht habe, dann tritt das Problem nicht auf.
Hi,
hab das Problem auch wenn ich z.B. Firefox oder Miranda zeitgleich laufen habe.
Es hat ein bisschen was gebracht einige Einstellungen in Windows zu machen (2000).
In der Systemsteuerung kannst du unter System-> Systemeigenschaften->Erweitert die Systemleistungsoptionen verändern. Allgemein sollte der virtuelle Arbeitsspeicher der minimal/maximal freigegeben wird auf die gleiche Mb Zahl gesetzt werden. 1024MB sollten es minimal sein.
Systemleistung optimieren für Anwendungen hat auch geholfen.

Desweiteren ist meine Graka hier nicht sonderlich gut, bei vielen Graphen, Bildern, Videos etc. in deinem LabVIEWprogramm (oder auf dem Desktop) kann auch dort ein Problem vorkommen.

Soviel mal zum "nicht LabVIEW Teil" ^^

In LabVIEW ist mir oft das Programm zu langsam gewurden, wenn ich viele Schleifen gleichzeitg ausführe. Seit ich mit Eventstrukturen arbeite, klappt dies eindeutig besser. Die meisten Case Schleifen kann man schnell zu Event umsetzen und mir hat es viel gebracht. Ich durchlaufe meine Programmschleife so ungefähr 3-4 mal schneller. Lokale Variablen fressen immer viel Speicher, eventuell kann man hier besser einige Wire zusammenlegen um die Übersichtlichkeit zu behalten und keine lokalen Variablen nutzen zu müssen.

Mfg, Holger
Hallo Holger.

LabVIEW ist die einzige Anwendung, die läuft. Aber ich werde da trotzdem mal nachsehen.

' schrieb:In LabVIEW ist mir oft das Programm zu langsam gewurden, wenn ich viele Schleifen gleichzeitg ausführe. Seit ich mit Eventstrukturen arbeite, klappt dies eindeutig besser. Die meisten Case Schleifen kann man schnell zu Event umsetzen und mir hat es viel gebracht. Ich durchlaufe meine Programmschleife so ungefähr 3-4 mal schneller. Lokale Variablen fressen immer viel Speicher, eventuell kann man hier besser einige Wire zusammenlegen um die Übersichtlichkeit zu behalten und keine lokalen Variablen nutzen zu müssen.

Mfg, Holger

Eventstrukturen nutze ich schon. Da sind schon 38 Cases drinne. Kann ich beliebig viele Eventstrukturen erstellen (mit dazugehöriger Whileschleife)? Was meinst du mit "...wenn ich viele Schleifen gleichzeitg ausführe." Schleifen, die ineinander verschachtelt sind oder parallel?
Ich habe eben angefangen ein paar Strippen zu ziehen um lokale Variablen loszuwerden. Ich habe mal LV zählen lassen. 379 lokale Variabelzugriffe habe ich in meiner Anwendung. Zu viel 'wa?

Marcus
' schrieb:Eventstrukturen nutze ich schon. Da sind schon 38 Cases drinne. Kann ich beliebig viele Eventstrukturen erstellen (mit dazugehöriger Whileschleife)?


Kanst du, mach es aber lieber nicht. Wenn du es machst, musst du sehr aufpassen, dass du ein Event in mehreren Strukturen nicht hast, sonst kann es zu solchen Einfrieren der Taskleiste und sonstigen Unklarheiten führen.
Referenz-URLs