eine Frage in die Runde, ob jemand vergleichbare Probleme hat, bzw. das hier geschilderte Problem nachvollziehen kann:
Bei der Verwendung von Dataobjects mit :copy() bleiben Memoryhandles hängen.
Ebenso wenn man ein Dataobject mit Var2Json() exportiert.
Wir verwenden in unserer Anwendung vermehrt diese Funktionalität, das bedeutet, dass im Laufe des Tages immer mehr Handles verbraucht werden und das Programm immer langsamer wird.
Anbei ein Codeschnipsel, welches das Problem verdeutlichen soll:
Code: Alles auswählen
PROCEDURE main()
LOCAL oData, oData2
LOCAL nCount := 1
LOCAL nLoop := 1000
DllLoad("memwatch.dll")
? "Loading Memwatch"
Sleep(500)
? "Starting Simple-Test"
WAIT
DO WHILE nCount <= nLoop
oData := DataObject():new()
oData := NIL
Sleep(1)
nCount++
ENDDO
? "Done"
nCount := 1
Sleep(10)
? "Starting Var2Json-Test"
WAIT
DO WHILE nCount <= nLoop
oData := DataObject():new()
Var2Json(oData)
oData := NIL
Sleep(1)
nCount++
ENDDO
? "Done"
nCount := 1
Sleep(10)
? "Starting Copy-Test"
WAIT
oData := DataObject():new()
DO WHILE nCount <= nLoop
oData2 := oData:copy()
oData2 := oData2
oData2 := NIL
Sleep(1)
nCount++
ENDDO
? "Done"
nCount := NIL
Sleep(10)
WAIT
RETURN
Einen passenden PDR habe ich zu meinem Erstaunen nicht gefunden.
Wir setzen das aktuelle Builds 1079 ein, mit Build 951 ergab der Test jedoch das Gleiche.
D.h. dass das Problem schon seit mehr als einem Jahr existieren muss.