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 

Größe eines Cluster-Elements bestimmen (Sizeof)



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!

03.04.2009, 08:52
Beitrag #1

FEL Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 66
Registriert seit: Jun 2007

2015
2005
DE_EN

04229
Deutschland
Größe eines Cluster-Elements bestimmen (Sizeof)
Hi Leute,

gibt es bei LV eine Möglichkeit die Größe eines Cluster-Elements zu bestimmen? Also so wie man
es bei C mit Sizeof() machen würde.

Hintergrund: Bei meinen Programmen packe ich alle Variablen in einen riesigen Cluster. Der enthält
zunächst weitere Cluster (nach Themen sortiert). Darin sind dann die entsprechenden Elemente
enthalten. Da auch Arrays dabei sind, ändert sich die Größe des Clusters.
Den Cluster "schleppe" ich dann durch alle VI's durch. Ab einer gewissen Größe wirkt sich das auf
die Performance aus. Um dies zu optimieren, wäre es gut, wenn man die Größe bestimmen könnte.

Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
03.04.2009, 09:35
Beitrag #2

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Größe eines Cluster-Elements bestimmen (Sizeof)
Du kannst dir mit dem Property "Controls" ein Array aller Referenzen im Cluster holen und das für jedes enthaltene Control weitertreiben...

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.04.2009, 09:54
Beitrag #3

FEL Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 66
Registriert seit: Jun 2007

2015
2005
DE_EN

04229
Deutschland
Größe eines Cluster-Elements bestimmen (Sizeof)
Ja gut, aber wie kommt man mit Referenzen weiter? Man kann den Wert und ein paar Eigenschaften
über die Referenz ändern. Aber wie bestimme ich die Größe bzw. den Typ eines einzelnen Elements?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.04.2009, 09:59
Beitrag #4

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Größe eines Cluster-Elements bestimmen (Sizeof)
Was meinst du mit Größe?

Wenn du die Anzahl der Elemente eines im Cluster enthaltenen Arrays haben willst, musst du dir über die Controlreferenz den Value holen und dann ArraySize ermitteln...

Du musst die einzelnen enthaltenen Controls aber noch mit "To more specific class" genauer beschreiben, du musst also wissen, welches Element du an welcher Stelle des Clusters (und damit an welcher Stelle im Referenzen-Array) hast...

Das mit den großen Clustern ist aber nix genaues...je komplizierter die Datenstruktur ist, desto größer der "Handling-Aufwand" (Prozessorzeit + Speicherverbrauch)

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.04.2009, 10:11
Beitrag #5

FEL Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 66
Registriert seit: Jun 2007

2015
2005
DE_EN

04229
Deutschland
Größe eines Cluster-Elements bestimmen (Sizeof)
' schrieb:Was meinst du mit Größe?

Wenn du die Anzahl der Elemente eines im Cluster enthaltenen Arrays haben willst, musst du dir über die Controlreferenz den Value holen und dann ArraySize ermitteln...
Danke. Im Prinzip reicht es, nur die Größe der Arrays zu bestimmen, da sie den größten Teil ausmachen.
Ich dachte, es gibt vielleicht eine einfache Funktion, um die Größe des gesamten Clusters zu bestimmen.

' schrieb:Du musst die einzelnen enthaltenen Controls aber noch mit "To more specific class" genauer beschreiben
Wie geht das genau?


' schrieb:Das mit den großen Clustern ist aber nix genaues...je komplizierter die Datenstruktur ist, desto größer der "Handling-Aufwand" (Prozessorzeit + Speicherverbrauch)
Was wäre die Alternative?

Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.04.2009, 10:24
Beitrag #6

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Größe eines Cluster-Elements bestimmen (Sizeof)

Sonstige .vi  cluster.vi (Größe: 16,37 KB / Downloads: 403)
Lv82_img


Was die Alternative zu deiner Datenstruktur ist kann ich dir nicht sagen...ich kenne doch die näheren Umstände nicht...

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
03.04.2009, 10:25
Beitrag #7

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.695
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Größe eines Cluster-Elements bestimmen (Sizeof)
Erstens: SizeOf() geht nicht. Wie auch in C etc. Auch bei Arrays in struct liefert SizeOf() nur die struct-Größe, nicht aber die Datengröße einschließlich Array-Größe.

Zweitens: Bedenke auch, dass Arrays und Strings nicht unbedingt im Cluster direkt liegen. Beides sind, wie in C etc, komplexe Typen. Hier liegt lediglich die Steuerung im Cluster, nicht aber die Daten direkt.

' schrieb:Danke. Im Prinzip reicht es, nur die Größe der Arrays zu bestimmen, da sie den größten Teil ausmachen.
Cluster entbundeln bis das Array erscheint und das Element "Arraylänge" verwenden.

Zitat:Ich dachte, es gibt vielleicht eine einfache Funktion, um die Größe des gesamten Clusters zu bestimmen.
Ist mir nicht bekannt.


Ich pack ja auch immer alles in Cluster. Ist halt recht einfach für den Datenfluß - ein Wire statt 1000. Nur: Soviel, dass es Performance-Probleme gibt hatte selbst ich nocht nicht. Wie groß sind denn die Arrays im Cluster?

Man muss nicht zwangsläufig echten Datenfluß verwendet. Man kann auch "funktionale SubVIs" nehmen. Das ist ein SubVI, das Daten in einem Schieberegister hält. Das ist dann wie ein Modul, in das man die Daten schreiben kann und wieder auslesen.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.04.2009, 10:30 (Dieser Beitrag wurde zuletzt bearbeitet: 03.04.2009 10:32 von RoLe.)
Beitrag #8

RoLe Offline
LVF-Guru
*****


Beiträge: 1.236
Registriert seit: Jul 2007

-
1997
en

0
Schweiz
Größe eines Cluster-Elements bestimmen (Sizeof)
' schrieb:Den Cluster "schleppe" ich dann durch alle VI's durch. Ab einer gewissen Größe wirkt sich das auf
die Performance aus. Um dies zu optimieren, wäre es gut, wenn man die Größe bestimmen könnte.

Ich "schleppe" im Cluster nur noch Referenzen rum.
Den "Cluster" (ohne ref) habe ich in ein SubVI gemacht mit get/set/init, und rufe das nur auf, wenn ich was vom Cluster brauche.

Ob das jetzt besser ist ....

EDIT: IchSelbst war mal wieder schneller als IchSelber .... Big Grin

.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.04.2009, 10:45
Beitrag #9

FEL Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 66
Registriert seit: Jun 2007

2015
2005
DE_EN

04229
Deutschland
Größe eines Cluster-Elements bestimmen (Sizeof)
' schrieb:Ich pack ja auch immer alles in Cluster. Ist halt recht einfach für den Datenfluß - ein Wire statt 1000. Nur: Soviel, dass es Performance-Probleme gibt hatte selbst ich nocht nicht. Wie groß sind denn die Arrays im Cluster?

Das größte Element ist ein 2-Dim Double Array. Die genaue Größe hängt vom Benutzer ab.
Im konkreten Fall betrug die Größe 30'000 x 4. Das hat dann die Zykluszeit um ca. 8ms
vergrößert.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.04.2009, 10:49
Beitrag #10

FEL Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 66
Registriert seit: Jun 2007

2015
2005
DE_EN

04229
Deutschland
Größe eines Cluster-Elements bestimmen (Sizeof)
' schrieb:Ich "schleppe" im Cluster nur noch Referenzen rum.
Den "Cluster" (ohne ref) habe ich in ein SubVI gemacht mit get/set/init, und rufe das nur auf, wenn ich was vom Cluster brauche.

Ob das jetzt besser ist ....

In meinem Cluster ist auch ein Array. Es enthält alle Referenzen der Bedienelemente des Hauptprogramms.
Damit können auch Sub-VIs z. B. Elemente deaktivieren.
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
  Elemente Cluster in Cluster ansprechen simcum 3 3.726 02.10.2023 10:49
Letzter Beitrag: th13
  Datentyp eines Elements herausfinden Mrindfleisch 15 10.639 12.02.2021 08:26
Letzter Beitrag: Mrindfleisch
  Wie ändert man die Größe eines Bildes im Anzeigefenster des Frontpanels Gellerpa 15 7.937 21.05.2018 18:32
Letzter Beitrag: Gellerpa
  Sichtbarkeit eines Fensters bestimmen THL 9 5.847 06.12.2016 14:16
Letzter Beitrag: BNT
  Element in Cluster of Array of Cluster ausblenden R.Fuertig 4 7.289 26.09.2016 07:47
Letzter Beitrag: GerdW
  Variable Größe eines Arrays mit VISA-Adressen jusaca 4 4.568 10.02.2016 10:13
Letzter Beitrag: jusaca

Gehe zu: