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 

out of memory exception caught in llvm gencode



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!

25.07.2012, 21:17 (Dieser Beitrag wurde zuletzt bearbeitet: 25.07.2012 21:24 von dimitri84.)
Beitrag #1

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
out of memory exception caught in llvm gencode
Hallo Jungs,

es geht um ein VI zum nachträglichen Neuabtasten von TDMS-Datein. Ich wollte die "neuen" Abtastraten bewusst hart im Quellcode unterbringen, um ein Editieren von außen unmöglich zu machen - darum geht's garnicht, bloß eine präventive Rechtfertigung.

Heraus kam eine Case-Struktur mit ca. 50 Frames. Geht noch. Mit der Zeit dauerte das Zwischenspeichern immer länger, bis es richtig nervig wurde (ca. 30-60 Sekunden). Ab Case ca. 30 kam dann der unten beschriebene Fehler auf meinem normalen Entwicklungs-Laptop (WinVista ... ja ich weiß ...)

   
   

Dann das VI auf nen neuen Laptop mit Win7 64bit (LV2010 32 bit) gepackt und es ging wieder! Dauerte zwar, aber ging. Restliche 20 Cases fertig gemacht ... Speichern ... wieder selber Fehler, diesmal endgültig. Mass Compile vom Projekt lief durch aber ohne Effekt für das betroffene VI.

(Ich verabschiede mich jetzt von der großen Case Struktur und pack die Info in ne ini.) Was lerne ich jetzt aus der Geschichte? Je neuer das System, desto mehr Frames kann ich inner Case-Struktur unterbringen? Quatsch ...


10.0 .vi  TDMS_Resample.vi (Größe: 1,86 MB / Downloads: 210)


Edit: Hab jetzt gelesen das http://zone.ni.com/reference/en-XX/help/..._ad_aware/ soll/kann Abhilfe schaffen.


Gruß Dimitri

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
25.07.2012, 21:34 (Dieser Beitrag wurde zuletzt bearbeitet: 25.07.2012 21:41 von GerdW.)
Beitrag #2

GerdW Online
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: out of memory exception caught in llvm gencode
Hallo Dimitri,

- LV2011SP1 konnte dein VI auf einem älteren WinXP-Laptop mit 2GB RAM laden und in gefühlten 15s speichern (konvertieren und kompilieren eingeschlossen)

- du sagst leider nur die halbe Wahrheit: jeder viele deiner 50 Cases enthalten eine weitere Case-Struktur mit knapp 20 Cases! Dort könntest du viele entfernen, wie du es bei einigen "Haupt"-Cases schon getan hast, die nur eine Case-Struktur mit 2 Cases anthalten...
- selbst diese innere Case-Struktur ließe sich vereinfachen, indem man den TDMS-Speicher-Teil aus den Cases herausnimmt, da er (bei schnellem Durchschauen) immer identisch ist; der einzige Unterschied der (inneren) Cases scheint die Resample-Funktion zu sein...
- auch die "Haupt"-Cases enthalten viel gleichen Code, der nicht in den Cases enthalten sein muss...
- das ganze VI schreit nach dem Erstellen von subVIs für ständig gleiche Funktionalitäten...

Bei soviel dupliziertem Code (ohne Einsatz von subVIs) würde ich auch streiken Smile

Zitat:Was lerne ich jetzt aus der Geschichte?
"Effizient" programmiert man nicht durch Copy & Paste Wink
(Bzw. sollte man "Effizienz" dann genau definieren, da das Erstellen des VIs, abgesehen von den Unzulänglichkeiten der Programmierumgebung (wie dir ja aufgefallen ist), natürlich sehr schnell geht Big Grin )

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.07.2012, 21:41 (Dieser Beitrag wurde zuletzt bearbeitet: 25.07.2012 22:58 von jg.)
Beitrag #3

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: out of memory exception caught in llvm gencode
Ironie
Dimitri, Schande über dich. Pony
Alleine, dass du in der innersten Case-Struktur immer dasselbe machst (bis auf einen einzigen Parameter), das schreit schon nach einem SubVI.

Und bei einer Case-Strukur mit 50 Cases von 2hands geht noch 2hands zu sprechen... Abgelehnt

Gruß, Jens

P.S. & Edit: Das von dir eingesetzte Resample-VI ist Reentrant, das erklärt die 1,9 MB -Dateigröße!

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
25.07.2012, 22:25
Beitrag #4

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
RE: out of memory exception caught in llvm gencode
1) Die Memory Erweiterung hilft nicht.
2) Zu wenig präventive Rechtfertigung =)

Ja, viele Cases ließen sich zusammenfassen - natürlich. Wenn ich aber etwas vorbereite und dann beim Kunden in Betrieb nehme, will ich möglichst viele Freiheitsgrade zur Verfügung haben, deswegen hat jeder Kanal einen eigenen Case bekommen. Dass der Speicherbedarf eines VIs oder Quellcodes zu einem Problem werden kann, war mit nicht bewusst, ist mir bisher noch nie passiert. Jetzt weiß ichs besser.

Die neue Version des VI kommt ganz ohne Case-Struktur aus ... die Abtastraten kommen einfach alle aus ner ini.



Gruß Dimitri

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.07.2012, 10:15
Beitrag #5

rasta Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 245
Registriert seit: Oct 2006

LabVIEW 2009-2017
2006
EN

53909
Deutschland
RE: out of memory exception caught in llvm gencode
Hallo dimitri,
noch ein paar Hinweise bezüglich den TDMS-Channel-Properties umshiften auf die neue Datei.
Die For-Schleife (Anhang 1) brauchst Du nicht. Es wird nur unnötig oft der TDMS Set Properties Baustein benutzt.
Einmal reicht ! (Anhang2). Wenn Du jetzt auch noch den Fehler den Du ausradiert wegbekommen möchtest, dann wie im Anhang 3.
Hintergrund: In den Properties befindet sich das Property "name" und dieses kann man nicht mit Set properties überschreiben.

Gruß
Ralf


Angehängte Datei(en) Thumbnail(s)
           
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.07.2012, 11:01 (Dieser Beitrag wurde zuletzt bearbeitet: 28.07.2012 11:06 von dimitri84.)
Beitrag #6

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
RE: out of memory exception caught in llvm gencode
Hallo Ralf,

ja, da hab ich auch noch selbst etwas erweitert:

   

Nicht nur "name" darf nicht editiert werden, sondern auch einige andere die dynamisch von LV angelegt werden. Jetzt sortiere ich folgende aus:
"NI_ChannelLength", "NI_ChannelName", "NI_DataType", "NI_UnitDescription"
(Diese werden auch in der neuen TDMS automatisch angelegt.)

Was wirklich seltsam ist: wf_increment (also dt) wird zum Zeitpunkt der Datenerfassung automatisch angelegt. Mache ich jedoch das händische Resampling und hinterlege das neue dt im Signalverlauf-Datentyp, so fehlt die Eigenschaft gänzlich in der neuen TDMS-Datei.

   

D.h. wf_increment lege ich explizit selbst an. Keine Ahnung warum das so ist, schließlich steht diese Info genauso zur Verfügung wie zum Zeitpunkt der Datenerfassung ...

(Der "Clear-Error" issn Überbleibsl.)

Gruß dimtiri

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Labview Memory Programmieren OenerSer 5 3.799 27.04.2021 13:05
Letzter Beitrag: GerdW
  Änderung von großen Cluster (Type Def.) führt zu out of Memory exeption spacz 8 6.575 28.10.2019 09:01
Letzter Beitrag: spacz
  Labview Memory Verdammniskeks 4 4.451 03.05.2019 22:52
Letzter Beitrag: Trinitatis
  Tools Profile | Buffer Allocation ? Suche Memory Leak gottfried 1 3.528 26.10.2016 08:26
Letzter Beitrag: Morpheus
  Umgang mit großer Datenmenge / out of memory riske 11 11.387 11.11.2010 20:39
Letzter Beitrag: jg
  Memory or data structure corrupt First 13 11.444 11.02.2010 15:40
Letzter Beitrag: Achim

Gehe zu: