' schrieb:Aber wie sieht jetzt mit denen vno unicorn beschriebenen Arrays aus? Also ein 1D-Array aus cluster mit 2D-Arrays. Landen die auch am Stück im Speicher oder hat LV hier die Möglichkeit, die 2D-Arrays besser im Speicher zu verteilen?
Jedes Array in LabVIEW ist ein Handle (Pointer auf einen Pointer). Was Du also bei mehreren Arrays in einem Cluster erhältst, sind seperate Arrays und damit auch seperate Speicherbereiche. Grundsätzlich ist das sicher einfacher für den Memorymanager da die Chance dass genügend individuelle Speicherlöcher bestehen die gross genug sind für jedes der einzelenen Arrays, grösser ist.
Aber die Lösung hat auch Nachteile. Jedes Array hat einen Overhead in LabVIEW (und nochmals im OS) da das auch Informationen über jeden Pointer verwalten muss. Das sind zwar nur etwa 100 Bytes oder so aber das kann mit der Zeit doch zählen. Zudem verwendet auch der Cluster selber nochmals einen Speicherbereich was auch nicht soviel auf einmal ist aber doch auch wieder so um die 32 Bytes plus den Speicherpointeroverhead von LabVIEW und dem OS. Und nicht zu vergessen die Speicherdeskriptoren die auch nur endlich sind, vor allem bei Verwendung des /3GB boot.ini Switches.
Der grösste Nachteil ist aber dass Du auf diese Weise schnell ein unübersichtliches Diagramm bekommst, da Du für jede Operation auf eines der Arrays ein Unbundle benötigtst, dann die Arrayoperation und dann wieder ein Bundle. Auch wird es umständlicher um Inplaceness zu erhalten, weil das nur noch durch die entsprechenden Inplaceoperatoren in LabVIEW 8.6 zu erreichen ist. Ohne Inplaceoperationen bricht Dir die Performance schrecklich zusammen.
Und nicht zu vergessen dass eine solche Lösung überhaupt nicht scalierbar ist. Ein extra Kanal hinzufügen? Au Backe, dann muss ich den Cluster ändern, alle VIs die darauf angewendet werden anpassen und so weiter!!!!
Bei einer reinen 2D Arraylösung die sauber programmiert ist setze ich die Funktion die die Daten acquiriert einfach so dass Sie einen Kanal mher einliest und alles andere geht automatisch. Eventuel muss im UI noch etwas angepast werden um den extra Kanal auch einstellbar zu machen und darzustellen (Grpahenlegende zum Beispiel). Aber das ist es dann schon.