LabVIEWForum.de - Speicherreduzierung, geht das hier?

LabVIEWForum.de

Normale Version: Speicherreduzierung, geht das hier?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
' schrieb:Dann habe ich jedoch ein zusätzliches Schieberegister, das ich gerne vermeiden würde.Wink
Dann musst du eben damit leben. Wenn man Optimierungsarbeit leistet kommt es schonmal vor das Programmcode nicht mehr so bleibt wie er war.
Solange nicht der ganze, große Cluster kopiert wird, sondern nur dein Boolean, sollte der Performanceunterschied marginal bzw. nicht messbar sein.
' schrieb:Solange nicht der ganze, große Cluster kopiert wird, sondern nur dein Boolean, sollte der Performanceunterschied marginal bzw. nicht messbar sein.
Es wird aber der ganze Cluster kopiert. Und wenn dann eine große Menge an Messdaten innerhalb des Clusters mitkopiert werden, bremst das nicht nur die Performance aus, sondern kann im schlimmsten Fall zum Speicherüberlauf führen. Deshalb ist es keine gute Idee Messdaten in einem Cluster zu speichern.
' schrieb:Es wird aber der ganze Cluster kopiert.
Bist du dir da sicher? Wenn ich die Puffer-Quadrate richtig interpretiere, wird der Cluster nicht kopiert und nur der boolsche Wert ausgelesen.
' schrieb:Bist du dir da sicher? Wenn ich die Puffer-Quadrate richtig interpretiere, wird der Cluster nicht kopiert und nur der boolsche Wert ausgelesen.
http://zone.ni.com/devzone/cda/tut/p/id/3625

Aus dem Link:
Since LabVIEW is a dataflow language, copies are an integral part of how the language works. Any time there is a fork in a wire, a copy may be made. LabVIEW is fairly intelligent and usually makes a copy only when necessary. However, LabVIEW is also safe. If in doubt, a copy will be made.

Du kannst dir also nie Sicher sein, dass LV wirklich schlau genug ist zu erkennen, ob du die Daten noch brauchst. Innerhalb einer Case Struktur bin ich mir ziemlich sicher, dass eine Kopie gemacht wird.

Die Moral von der Geschicht --> immer versuchen Datenflusskonform zu programmieren.
' schrieb:Du kannst dir also nie Sicher sein, dass LV wirklich schlau genug ist zu erkennen, ob du die Daten noch brauchst. Innerhalb einer Case Struktur bin ich mir ziemlich sicher, dass eine Kopie gemacht wird.

Genau um diese Puffer/Kopien zu finden geht's ja gerade. Dazu gibts das Show Buffer Allocations. Siehe auch unter Dataflow Programming and Data Buffers
Auch nett: http://labviewwiki.org/Buffer_Allocation

Innerhalb einer Casestruktur bin ich mir sehr sicher, dass ich auch von sehr großen Clustern keine komplette Kopie bekommen habe.
Optimieren in LV mitunter etwas magisch... aber "hide the dots" spielen kann auch Spass machen :-)
' schrieb:Genau um diese Puffer/Kopien zu finden geht's ja gerade. Dazu gibts das Show Buffer Allocations. Siehe auch unter Dataflow Programming and Data Buffers
Auch nett: http://labviewwiki.org/Buffer_Allocation

Innerhalb einer Casestruktur bin ich mir sehr sicher, dass ich auch von sehr großen Clustern keine komplette Kopie bekommen habe.
Optimieren in LV mitunter etwas magisch... aber "hide the dots" spielen kann auch Spass machen :-)
Dieses Tool wird dir leider bei Drahtabzweigen nie helfen, weil es hier keine Bufferallocation anzeigt aber durchaus eine vornehmen kann.
Wenn eine Bufferallocation vorkommt, wird sie aber nicht an der Drahtabzweigung angezeigt, sondern an der folgenden Funktion, Tunnel o.ä. und da sieht man sie dann auch schön mit dem Show Buffer Allocations.
' schrieb:Wenn eine Bufferallocation vorkommt, wird sie aber nicht an der Drahtabzweigung angezeigt, sondern an der folgenden Funktion, Tunnel o.ä. und da sieht man sie dann auch schön mit dem Show Buffer Allocations.
Das Problem ist, dass sie unter umständen gar nicht angezeigt wird.
' schrieb:Das Problem ist, dass sie unter umständen gar nicht angezeigt wird.
Dann wäre aber das Pufferzuweisungs-Tool für die Katz'. Unsure
Seiten: 1 2 3 4
Referenz-URLs