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 

Speicherreduzierung, geht das hier?



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!

26.07.2010, 13:29
Beitrag #1

Matze Offline
LVF-Team
LVF-Team

Beiträge: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
Deutschland
Speicherreduzierung, geht das hier?
Hallo zusammen,

ich verwede ein SubVI, das ungefähr so aufgebaut ist:

snip09
   

Ich reiche hier den Cluster "Messdaten" durch das SubVI, damit die Verdrahtung im übergeordneten Blockdiagramm ordentlich ist.

Ich vermute, bei meinem SubVI wird eine Kopie des Clusters erstellt (s. kommentierte Stelle).
Lässt sich das irgendwie vermeiden trotz "Durchreichen" des Clusters?

Oder seht ihr sonst Dinge, die optimiert werden können, was die Verdrahtung bzgl. Speichermanagement betrifft?

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
26.07.2010, 13:32
Beitrag #2

Ricardo1980
Unregistered


 







Speicherreduzierung, geht das hier?
Hallo,

wenn du das VI auf ablaufinvariant stellst, wird dann nicht nach Abarbeitung der Speicher wieder freigegeben?
Dachte hätte das mal so beobachtet.

Gruß Ricardo
Diese Nachricht in einer Antwort zitieren to top
26.07.2010, 13:33
Beitrag #3

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
Speicherreduzierung, geht das hier?
Hallo Mechatroniker,

solange du nur Werte aus dem Cluster liest, legt LabVIEW nicht notwendigerweise eine Kopie an...

Wenn du aber den Cluster bearbeiten willst, kann das durchaus passieren. Aber wozu gibt es die InPlace-Struktur, die du ja schon kennst (und uns in deinem anderen Thread heute schon gezeigt hast)? Bestimmte Sachen kann man aber nicht "wegoptimieren", z.B. wenn im Cluster Arrays enthalten sind, die sich durch deine Operation vergrößern...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.07.2010, 13:45
Beitrag #4

abrissbirne Offline
LVF-Stammgast
***


Beiträge: 480
Registriert seit: Aug 2007

LV2009, LV2010
2007
EN

66123
Deutschland
Speicherreduzierung, geht das hier?
Du machst sogar zwei kopien. Eine Kopie entsteht mit jedem Drahtabzweig.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.07.2010, 13:50
Beitrag #5

Matze Offline
LVF-Team
LVF-Team

Beiträge: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
Deutschland
Speicherreduzierung, geht das hier?
Hallo,

mir geht's weniger ums Freigeben, als über den Verbrauch generell bzw. damit verbunden auch die Performance. Ich möchte möglichst ohne Kopien auskommen.

' schrieb:Du machst sogar zwei kopien. Eine Kopie entsteht mit jedem Drahtabzweig.
Wirklich? Auch wenn ich nur auf einen einzelnen Cluster-Wert zugreife, wird der gesamte Cluster-Inhalt kopiert?

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.07.2010, 13:54
Beitrag #6

macmarvin Offline
CLA
***


Beiträge: 445
Registriert seit: Sep 2006

2014
2004
EN

81373
Deutschland
Speicherreduzierung, geht das hier?
Probiers doch mal so:
   

afaik ist LV beim Erkennen von komplett durchverdrahteten Datendrähten durch Casestrukturen ziemlich gut.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.07.2010, 14:07
Beitrag #7

Matze Offline
LVF-Team
LVF-Team

Beiträge: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
Deutschland
Speicherreduzierung, geht das hier?
Danke. Ich habe gelesen, man soll Werte nur durch Case-Strukturen führen, wenn man sie dort benötigt. Daher habe ich es außerhalb gelöst.
Wobei beide Lösungen laut dieser Pufferzuweisungsanzeige auf das gleiche raus kommen, wenn ich das richtig sehe.

Dann würde ich sagen, dass nur am Eingang des SubVIs der Cluster kopiert wird.

Eigentlich schade, dass dies bei SubVIs immer der Fall ist, denn sonst sehe ich ihn ihnen nur Vorteile. Bzgl. Performance sind SubVIs daher etwas suboptimal, aber ohne wäre die Wartbarkeit der Blockdiagramme nicht gegeben.

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.07.2010, 14:09
Beitrag #8

abrissbirne Offline
LVF-Stammgast
***


Beiträge: 480
Registriert seit: Aug 2007

LV2009, LV2010
2007
EN

66123
Deutschland
Speicherreduzierung, geht das hier?
So wärs am Besten denke ich.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.07.2010, 14:16
Beitrag #9

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
Speicherreduzierung, geht das hier?
Hallo Mechatroniker,

"Dann würde ich sagen, dass nur am Eingang des SubVIs der Cluster kopiert wird. Eigentlich schade, dass dies bei SubVIs immer der Fall ist,"

Falsch, diese Kopie kann man durch Setzen der ExecutionPriority auf "Subroutine" vermeiden...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.07.2010, 14:25 (Dieser Beitrag wurde zuletzt bearbeitet: 26.07.2010 14:26 von Matze.)
Beitrag #10

Matze Offline
LVF-Team
LVF-Team

Beiträge: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
Deutschland
Speicherreduzierung, geht das hier?
Hallo

@abrissbirne: Hm, dann werden bei jedem Aufruf die Messwerte kopiert, obwohl ich diese nur benötige, wenn "Ende Messung" true ist.
@Gerd: Huch, wieder was gelernt. Dann wundert mich, dass dies nicht das Standardverhalten ist. Ich wüsste keiner meiner SubVIs, bei denen ich mit der Kopie arbeiten muss.
Gerade bei großen Daten werde ich die Priorität entsprechend setzen, dankeschön.Smile

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Ist das hier ein Array? Hasenfuss 3 3.407 12.01.2013 18:39
Letzter Beitrag: BNT
  Was waere hier am besten? bluesaturn 3 4.221 14.06.2011 21:48
Letzter Beitrag: GerdW
  wie soll ich das hier programmatisch umsetzen? faqui 1 3.465 26.06.2006 14:23
Letzter Beitrag: eg

Gehe zu: