LabVIEWForum.de - Probleme beim Verketten von Arrays

LabVIEWForum.de

Normale Version: Probleme beim Verketten von Arrays
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Noch eine Idee: mit referenzen statt mit Variablenübergabe arbeiten. Also die Rechnung in einer DLL verpacken. Ich mache das mit sehr großen Arrayoperationen immer.
In meinem Bsp. muss ich nur aus der Konstanten 10000 einen Control machen und schon wird nur einmal Spiecher allokiert (50MB). Eine Umwandlung der 5000 ändert dagegen nichts.

Hier der LAVA-Artikel;
http://forums.lavag.org/index.php?showtopi...ost&p=41682

Für mich kommt das ziemlich seltsam vor.
Hier mal der Kontext. Links befuelle ich ein Array und zwar mit Kontrollelementen, wie man hier gelernt hat. Das Problem taucht dann rechts auf, wenn ich die Daten zu DAQmxWrite uebergebe. Dieses DAQ akzeptiert nur Double als Eingang. Aber da ich nur zwei verschiedene Werte ausgeben moechte (0 und 4, stehen fuer 0 und 4 V, TTL), wuerde auch ein U8 reichen. Wenn ich allerdings links mein Array nicht als double definiere, akzeptiert sie der DAQ nicht.
Das Array mit 4000x10000x2 =80 Millionen Elementen belegt also 640 MB, obwohl 80MB (bei U8) ausreichen wuerden.
[attachment=18848]
VI als Version 8.0 gespeichert, getestet auf Version 8.5.1
[attachment=18847]
Bitte Crossposts derselben Frage in einem anderen Forum angeben (vgl. LVF-Regeln):
http://forums.lavag.org/Waste-of-memory-wi...put-t14228.html
Es ist nur ein Crosspost fuer Personen die deutsch und englisch gleichzeitig verstehen; fuer den groessten Teil der LV-User ist es damit kein Crosspost.
Egal, mir gehts nur um die Loesung des Problems. Damit stelle ich fest, das noch jemand reinschaut.
' schrieb:Es ist nur ein Crosspost fuer Personen die deutsch und englisch gleichzeitig verstehen
Und das dürften zumindest im LVF die meisten sein! Somit Crosspost. Einfach immer Link angeben, und dann ist es sowas in Ordnung.

So, noch ein Tipp, schon mal darüber nachgedacht, unskalierte Werte zu übertragen:

[attachment=18865]

Dann hast du "nur noch" 160 MB.

Und Vorsicht, bei deinem Beispiel überträgst du U8-Array ohne Typumwandlung in ein DBL-Array, das dürfte auch Speicher fressen bei der Typumwandlung.

Gruß, Jens
Ohne mich zu weit aus dem Fenster lehnen zu wollen, denke ich dass hier im LVF jeder auch Englisch kann.

Gruß Markus

EDIT: Mist, Jens war schneller.

' schrieb:Es ist nur ein Crosspost fuer Personen die deutsch und englisch gleichzeitig verstehen; fuer den groessten Teil der LV-User ist es damit kein Crosspost.
Egal, mir gehts nur um die Loesung des Problems. Damit stelle ich fest, das noch jemand reinschaut.
' schrieb:So, noch ein Tipp, schon mal darüber nachgedacht, unskalierte Werte zu übertragen:
Bei RAW-Daten habe ich einen Wertebereich von 0...bis 2^16-1 oder -2^15....2^15-1 und damit stelle im gewählten Spannungsbereich die Spannung in 2^16 Abstufungen ein, oder?

' schrieb:Ohne mich zu weit aus dem Fenster lehnen zu wollen, denke ich dass hier im LVF jeder auch Englisch kann.
Im englischsprachigen Forum sprechen aber die meisten kein deutsch.
Erstens steht das so in den LVF-Regeln und da hast auch Du Dich daran zu halten und zweitens sind in den englischsprachigen Foren auch viele Deutsche unterwegs.

Gruß Markus

' schrieb:Im englischsprachigen Forum sprechen aber die meisten kein deutsch.
' schrieb:Bei RAW-Daten habe ich einen Wertebereich von 0...bis 2^16-1 oder -2^15....2^15-1 und damit stelle im gewählten Spannungsbereich die Spannung in 2^16 Abstufungen ein, oder?
Ich denke, ja. Aber bitte einfach mal selber probieren.

Gruß, Jens
Seiten: 1 2 3
Referenz-URLs