INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Verbesserungsvorschläge bezüglich Speicherverwendung



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!

11.07.2012, 16:21
Beitrag #1

YYYs Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: May 2011

LabVIEW 2011
2011
DE


Deutschland
Verbesserungsvorschläge bezüglich Speicherverwendung
Hallo,

ich würde mir gerne eure Verbesserungsvorschläge einholen wollen. Insbesondere wegen der Speicherver(sch)wendung in meinen VIs. Da ich hier mit Toolkits und Hardware arbeite, die ihr bestimmt nicht nutzt, habe ich die VIs mal als Screenshot hochgeladen.

Mein Main.vi bringt meine beiden SubVis, dass der eine was sendet, der andere was empfängt. Nachdem alle Pakete gesendet worden sind, werden Messungen durchgeführt und diese in eine Datei geschrieben. Dieser Vorgang wird in dem Fall 1200 mal wiederholt.

Wichtig ist hier der Empfänger namens Rx.vi. Hier arbeite ich mit fünf parallelen while-Schleifen und vier Queues. Alle Queues werden zuerst angefordert und mit einer maximalen Queuegröße von 1000 begrenzt. Die erste Schleife entnimmt die Daten aus dem Empfänger und schreibt Sie in eine Queue. Die zweite Schleife entnimmt aus der ersten Queue die Daten, verarbeitet sie weiter
und schreibt die Daten in die nächste Queue usw. Im Anschluss werden alle Queues wieder freigegeben.

Am Anfang hatte ich die maximale Queuegröße auf 100 gehabt. Nur leider blieb das Rx.vi einfach hängen (manchmal nach 3 Messvorgängen, manchmal erst nach 100), obwohl alle Schleifen beendet wurden und ein OK als Fehlermeldung aus jeder Schleife raus ging. Ich konnte mir das nicht erklären, da mir das nicht logisch erschien. Im Zeitdruck habe ich dann einfach die maximale Queuegröße auf 1000 erhöht und die 1200 Messungen liefen einwandfrei durch.

Jetzt habe ich das Problem, dass pro Messvorgang mehr Pakete übertrage und es zu einer Speicher ist voll Fehlermeldung kommt.

Habt ihr eine Idee? Mir reichen auch allgemeine Verbesserungstipps bezüglich meines Rx.vis.

Vielen Dank


Angehängte Datei(en) Thumbnail(s)
       
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
11.07.2012, 20:00
Beitrag #2

tobiasf5 Offline
LabVIEW-Tutor
*


Beiträge: 40
Registriert seit: Nov 2005

Aktuell 2009; 2012. 2013 steht in den Startlöchern
2005
DE_EN

30419
Deutschland
RE: Verbesserungsvorschläge bezüglich Speicherverwendung
Hallo,

ich weiß nicht wie es den anderen geht, aber ich finde das Ganze ziemlich verwirrend.
Was genau ist denn im ersten Bild und was im zweiten.

Das VI im zweiten Bild, ich denke das ist dieses RX.VI ????, solltest du vielleicht mal ein wenig aufräumen. Dann ist das Vorgehen vielleicht etwas erkennbarer.
Im ersten VI hast du eine Wartezeit von 2 sec. Was hat die da zu suchen?

Des weiteren wäre es doch gut, wenn du die VI's einmal hochlädst. Dann kann man leichter schauen was da so passiert und dir vielleicht eher helfen.


Gruß
Tobias

Also ich würd das mit LabVIEW machen......
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.07.2012, 09:00
Beitrag #3

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Verbesserungsvorschläge bezüglich Speicherverwendung
Hallo 3Y,

Tipps:
- RaceCondition der globalen Stop-Bedingung entfernen...
- im anderen VI: Warum wird dauernd ein Rendesvouz angelegt, gewartet und wieder gelöscht? Kann man die beiden subVIs nicht anders/einfacher aufrufen? Oder wenigstens da Rendesvouz nur einmal anlegen und löschen?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.07.2012, 09:18
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Verbesserungsvorschläge bezüglich Speicherverwendung
1) Was machst du im VI "Reconstr Data" in der untersten Schleife? Kräftig Arrays aneinanderhängen? Soviel zur Speicherverwendung

2) Was soll das uninitialisierte Schiebe-Register in der untersten Schleife?

3) IMHO brichst deine Programm-Struktur nicht ab. In allen Schleifen hast du ein "Dequeue" mit unendlicher Wartezeit. Solange dieses VI wartet, ist es relativ egal, ob eine globale Variable "Stop" existiert oder nicht.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Speicherverwendung --> immer kopieren Trinitatis 8 5.288 16.12.2016 12:58
Letzter Beitrag: GerdW
  Verbesserungsvorschläge ? dualsbiker 1 2.851 09.12.2009 20:07
Letzter Beitrag: IchSelbst

Gehe zu: