Erstellung von grossen Datenmengen über COM

Bei der Erzeugung von grossen Datenmengen in Vertec über COM muss beachtet werden, dass die Performance rapide abnehmen kann, wenn die Objekte alle im Memory belassen werden. Obwohl noch genügend Memory frei wäre und kein Problem sein sollte, wird das Memorymanagement ineffizient (anstatt 5 Leistungen pro Sekunde zu erstellen (am Anfang) macht es 1 in 5 Sekunden bei 500MB Speicherbedarf).

Um das zu verhindern, gibt es die Methode UnloadObject (siehe auch die COM Interface Beschreibungen), um die neu erstellten Objekte wieder aus dem Memory zu entfernen. Hier ein Code-Beispiel:

Dim UnloadList As IVtcObjectList
...

Set UnloadList = Vertec.CreateList("UserEintrag")

'---Dann jedes Objekt, dass man wieder raushaben will, in die Liste einfügen:
UnloadList.Add Leistung

'---In der Schlaufe drin z.B. alle 1000 Objekte folgendes machen:
If (i Mod 1000) = 0 Then
'---alle 1000 Leistungen oder Spesen Objekte aus Memory entfernen.
Vertec.UpdateDatabase   
For k = UnloadList.Count - 1 To 0 Step -1
UnloadList.Objects(k).UnloadObject
Next
'Jetzt kann die Liste geleert werden
Set UnloadList = Nothing
'Und neu erzeugt für den nächsten Durchgang
Set UnloadList = Vertec.CreateList("UserEintrag")
End If

25.02.2008 | 19.09.2011: Layout update.
Produktlinien: Standard, Expert
Module: Leistung & CRM