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 

RT Speicher Überlauf



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!

27.01.2009, 17:12
Beitrag #2

cb Offline
LVF-SeniorMod


Beiträge: 1.734
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
RT Speicher Überlauf
' schrieb:Hallo!

Ich habe folgendes Problem:

Aufbau: ein RT Rechner wartet auch Befehle von einem Win-Host, die via Shared Variablen bekommt und liefert dann Ergebnisse ebenfalls via SVE zurück oder startet Aktionen via FPGA

Zu den Problemen mit der SVE und dem Datasocket lass mich hier jetzt erstmal nicht aus.

Laut RT System Manager verbraucht er ca. 4-5 KB /s Memory. Ich habe beim vi Start ca. 12900 KB frei und komme so auf ca. 50 Sek. Laufzeit.

Ich lese die SVE Befehlsvariablen in mehreren parallelen Schleifen aus, da manche Vorgänge auch etwas länger dauern können und der RT auch Sachen parallel abarbeitet.

Ich habe schon versucht gewisse Sachen wie Arrays so gut es geht zu vermeiden und den Speicherplatz anschliessend wieder frei zu geben.

Aber irgendwie komme ich auf keinen grünen Zweig.

Vielleicht hat jmd. Rat.?
Wie stelle ich z.B. fest, ob nicht der FPGA Code den Speicherplatz verbraucht?

Bei Bedarf lad ich auch gerne mal das vi hoch, sind allerdings 2,5 MB

Danke schon mal

P.

Der FPGA-Code an sich kann keinen Speicher verbrauchen, der Code läuft ja auf dem FPGA. IMHO kann sich der Speicher-Verbrauch NUR erhöhen, wenn man irgendwo Queues vollschreibt und keine max. Queue Size eingestellt hat oder man z.B. irgendwo eine "build array" Primitive verwendet. Das ständige Öffnen von Referenzen oder so OHNE diese nach Gebrauch wieder zu schließen kann auch eine Ursache sein.

Ansonsten gilt die Regel: Während der Laufzeit sollte unter RT man tunlichst vermeiden neuen Speicher anzufordern (womit auch immer) sondern alles beim Programm-Start zu allocieren und dann auf dem zur Verfügung stehenden Speicher zu arbeiten, also immer Replace Array subset verwenden wenn man was in ein Array schreibt usw ...

Ob das Problem nun durch die Shared Variables auftritt kann ich dir nicht sagen, ich benutz die Dinger nicht ...

http://www.rotabench.com - Prüftechnik für Elektromotoren
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
RT Speicher Überlauf - Peyotito - 27.01.2009, 16:55
RT Speicher Überlauf - cb - 27.01.2009 17:12
RT Speicher Überlauf - Peyotito - 28.01.2009, 08:08
RT Speicher Überlauf - cb - 28.01.2009, 08:33

Gehe zu: