wie in jeder andere Programmiersprache auch (soweit ich nun die kenne, die ich kenn
) ist der Scope und die Referenzierung der Objekte entscheidend.
Notes managed die Speichernutzung automatisch.
Ist eine Variable ("result$= ") oder zB eine referenziertes Objekt ("set doc = session.currentdocument") gesetzt, setzt Lotus Script den "Verweiszähler" um 1 hoch => Speicherplatz reserviert und besetzt.
Solange ein Objekt nicht referenziert ist oder außerhalb seines Scopes, wird der Zähler auf 0 gesetzt und damit ist der Speicherplatz frei (Inhalt ist dann NOTHING).
Wann wird ein Objekt außerhalb des Scopes sein?
Wenn ich im QueryOpen UIDOC=ws.currentdocument => "Feld_Inhalt=uidoc.get..." setze, die Variable "Feld_Inhalt" aber nicht in der Global Sektion als globale "Variable"/"Objektreferenz" deklariere, ist mit Erreichen des nächsten Events (zB PostOpen) "FeldInhalt" wieder leer. Das gilt ebenso für alle Funktionen, Schleifen und Subs. Notes leert seine Memory, wenn Verweise nicht mehr im Scope (in "Reichweite") sind.
Man kann manuell Objektreferenzen leeren und damit die Memory freisetzen, indem man die Anweisung
Delete Objektreferenz verwendet. Dazu ein Beispiel aus einem Lib des Mailbaskets R6...achte mal auf den Kommentar zum Delete, warum Iris das macht.
Case "startdate":
' Call Me.m_note.ReplaceItemValue( "EndDate", Me.m_note.GetItemValue( "StartDate" ) )
' CStoner 12/9/01 - set date and time in case this spans midnight
Set NDTstart = New NotesDateTime(Me.m_note.GetItemValue( "StartTime" )(0) ) ' store the time in this date object
Set NDTend = New NotesDateTime(Me.m_note.GetItemValue( "StartDate" )(0) ) ' store the date in this date object
Call Me.m_note.ReplaceItemValue("EndDate", TIMEAdjustDate(NDTEnd, NDTStart, ldefdur) )
Call NDTstart.adjustminute( ldefdur )
' Call Me.m_note.ReplaceItemValue( "EndTime",NDTstart) ' spr # DCON5CYT2V
Delete NDTstart ' clear it out so we know it is ok to use later
Delete NDTend
' we are setting the end time to the start time adjusted by the default duration from the calendar profile