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 

Speicherbedarf FGV



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!

12.01.2012, 15:24 (Dieser Beitrag wurde zuletzt bearbeitet: 12.01.2012 15:24 von macmarvin.)
Beitrag #11

macmarvin Offline
CLA
***


Beiträge: 445
Registriert seit: Sep 2006

2014
2004
EN

81373
Deutschland
RE: Speicherbedarf FGV
(12.01.2012 14:59 )abrissbirne schrieb:  Natürlich darf das FP nicht geöffnet sein und es gibt einen Unterschied zw. LV 2011 und der hochgeladenen LV 8.6. Da ist der Compiler noch nicht so schlau wie heute.

Abgelehnt Natürlich gemessen mit FP geschlossen... Dodgy

Selbst mit FGV als Subroutine und unter LV 8.6.1 ergibt sich kein anderes Bild.

Auch damals wusste der Compiler schon, daß er die Daten beim FGV-Ausgang kopieren muss.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
12.01.2012, 15:41 (Dieser Beitrag wurde zuletzt bearbeitet: 12.01.2012 15:42 von Lucki.)
Beitrag #12

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Speicherbedarf FGV
Man sollte auch mal das bedenken:
Das Wesen der Erzeuger- Verbraucher-Struktur ist die Entkopplung von Erzeugung und Verbrauch durch einen Zwischenpuffer. Erzeugung und Verbrauch müssen dann nicht mehr exakt synchron zueinander laufen.
Ich habe jahrelang gebraucht, bis ich diesen Lichblick hatte: Die Datenerfassung mit NI Messkarten und auch über die Soundkarte ist wegen der gepufferten Übergabe bereits ein Erzeugersysten mit eigenem Puffer. Die übliche Erzeuger-Verbraucher - Struktur ist in Wirklichkeit eine Erzeuger-Erzeuger-Verbraucher-Struktur mit doppelter Zwischenpufferung und überflüssig wie ein Kropf.
Das nur mal als Einwurf, müsst ja nicht hinhören und könnt weitermachen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.01.2012, 15:59
Beitrag #13

eb Offline
LVF-Lernwilliger
***


Beiträge: 292
Registriert seit: Mar 2008

2014
2008
EN

12xxx
Deutschland
RE: Speicherbedarf FGV
Hallo Lucki,

Ich find es super, wenn du uns an deiner Erfahrung teilhaben lässt! Nur versuche ich momentan noch die Tragweite deiner Aussage zu ergründen. Meinst du das ausschließlich für die Messdatenerfassung über Hardware? Oder noch genereller? Klang für mich zunächst, wie "Producer/Consumer-Struktur ist ein Kropf", aber dann dachte ich mir: Es gibt ja auch noch andere Anwendungsfälle (Events, Commands, States, Communication, ...).
Also meine Aufmerksamkeit hast du geweckt, immer her mit den Einwürfen! Smile

Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.01.2012, 16:06
Beitrag #14

abrissbirne Offline
LVF-Stammgast
***


Beiträge: 480
Registriert seit: Aug 2007

LV2009, LV2010
2007
EN

66123
Deutschland
RE: Speicherbedarf FGV
(12.01.2012 15:24 )macmarvin schrieb:  
(12.01.2012 14:59 )abrissbirne schrieb:  Natürlich darf das FP nicht geöffnet sein und es gibt einen Unterschied zw. LV 2011 und der hochgeladenen LV 8.6. Da ist der Compiler noch nicht so schlau wie heute.

Abgelehnt Natürlich gemessen mit FP geschlossen... Dodgy

Selbst mit FGV als Subroutine und unter LV 8.6.1 ergibt sich kein anderes Bild.

Auch damals wusste der Compiler schon, daß er die Daten beim FGV-Ausgang kopieren muss.

Allerdings nur wenn das FP geöffnet ist. Wenn die Controls und Indicator auf der BD Root liegen wird der Speicher des aufrufenden VIs verwendet.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.01.2012, 18:40
Beitrag #15

macmarvin Offline
CLA
***


Beiträge: 445
Registriert seit: Sep 2006

2014
2004
EN

81373
Deutschland
RE: Speicherbedarf FGV
(12.01.2012 16:06 )abrissbirne schrieb:  Allerdings nur wenn das FP geöffnet ist. Wenn die Controls und Indicator auf der BD Root liegen wird der Speicher des aufrufenden VIs verwendet.

1. Selbst wenn physikalisch der Speicherbereich des Aufrufers verwendet wird, müssen die Daten der FGV SR erst noch da rein _kopiert_ werden.
2. Zeig mir den Testcode in dem bei der Verwendungen der zweiten FGV weniger Speicher verbraucht wird als bei der Ersten?
3. Bzgl. des FP... deshalb mein Einwand vorher bzgl. subroutine... damit ist's unerheblich ob das Ding offen ist oder nicht.
4. Wenn ich mich Recht entsinne haben wir so eine fruchtlose Diskussion ergebnislos geführt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.01.2012, 11:26
Beitrag #16

abrissbirne Offline
LVF-Stammgast
***


Beiträge: 480
Registriert seit: Aug 2007

LV2009, LV2010
2007
EN

66123
Deutschland
RE: Speicherbedarf FGV
(12.01.2012 18:40 )macmarvin schrieb:  4. Wenn ich mich Recht entsinne haben wir so eine fruchtlose Diskussion ergebnislos geführt.
Von daher lassen wirs einfach.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
13.01.2012, 13:30
Beitrag #17

Kiesch Offline
LVF-Stammgast
***


Beiträge: 412
Registriert seit: Mar 2009

2019, 2018, 2016
2009
DE

04519
Deutschland
RE: Speicherbedarf FGV
Um das mal kurz zusammenzufassen und nachzuvollziehen:

FGV: Speicherverbrauch für Anzeige auf FP (nehme mal an, das wäre dann das was sich bei geschlossenem FP ändert (?).
Außerdem Speicherverbraucht für Daten im Schieberegistereingang.

Read Case:
1. Es geht nichts in die FGV rein ---> kein zusätzlicher Verbrauch.

2.
Fall 1. : Im Case wird abgezweigt - Erzeugung einer Kopie bzw. da nur lesend eventuell auch nicht
Fall 2. : Im Case ist durchverdrahtet - kein zusätzlicher Speicherverbrauch bisher

3.
Fall 1. : Es wird ins Schieberegister geschrieben - das ist existierender Speicher (der vom Eingang) - kein zusätzlicher Speicherverbrauch.
Fall 2. : Auch hier wird nur ins Schieberegister geschrieben.

4.
Fall 1. : Die Daten werden ans aufrufende VI weitergereicht. Da ein neuer Speicherbereich bereits erzeugt wurde werden die also wie sie sind weitergegeben (quasi als Referenz) (?) Wurde bei 2. noch kein Speicher alloziert dann spätestens jetzt (siehe Fall 2).
Fall 2. : Die Daten stehen immer noch nur im Schieberegister. Es muss zwingend eine Datenkopie erzeugt werden, da nicht gewährleistet werden kann, das die Daten im Schieberegister sich nicht enden bzw. das auslesende Programm damit weiterarbeitet und sie verändert.

Ergebnis:

Letztlich hängt sich alles an 2. und 4. auf. Wird in 2. kein Speicher neu alloziert (da kein Schreibvorgang auf den Daten stattfindet) unterscheiden sich beide Varianten nicht. Wird hingegen in 2. Speicher alloziert (bei Fall 1), dann wäre entscheidend das Verfahren am Programmende. Wird neuer Speicher immer bei der Übergabe angefordert oder nur kontextsensitiv - daher nur wenn dies das nicht initialisierte Schieberegister zwingend erfordert. Nur wenn immer Speicher neu alloziert wird bei Übergabe ist Variante 1 weniger effektiv (durch 2 Allozierungen gegenüber einer). Ansonsten macht Sie die Allozierung lediglich woanders (nämlich innerhalb der FGV und nicht erst bei der Übergabe).

Sollte man sogar testen können (auch wenn ich nicht weis ob der Test das Verhalten ändern würde). Man nehme eine FGV mit beiden Wegen. Die gibt nun einmal ganz normal jeweils den Wert aus. Zusätzlich holt man sich eine Referenz innerhalb der FGV kurz vor der Übergabe "nach aussen". Die auch ausgegeben wird (es reicht die Referenz auf Variante 1 mit Abzweig). Je nachdem ob eine weitere Kopie erzeugt wurde sollte man damit dann programmatisch auf die an den Aufrufer übergebene Variable zugreifen können - oder eben auch nicht (da die entweder noch im gleichen Speicherbereich steht oder eben nicht).

Mal so als vorschlag ^^

Gruß Kiesch

P.S: Hoffe ich hab das richtig zusammengefasst.

Zitat:Märchen und Geschichten werden erzählt am Lagerfeuer, technischen Fakten werden mitgeteilt (oder so). (Genauso wie Software nicht auf einem Server "herumliegt", die ist dort installiert.)
*Zitat: IchSelbst*
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
  Speicherbedarf von Clustern Dommas 1 3.436 27.07.2011 15:19
Letzter Beitrag: macmarvin
  VI mit steigendem Speicherbedarf freezer 8 5.974 28.09.2009 22:22
Letzter Beitrag: freezer

Gehe zu: