Speicherleak bei BLOB TO VARIABLE?

Was mache ich bei unten stehendem Code falsch? Das importierte PNG “Star.png” ist ca. 50 kB klein. Eine Demo-DB habe ich erstellt und kann ich gern schicken.

Man kann hier dabei zusehen, wie der im Runtime-Explorer unter “Informationen” angezeigte “freie Speicher” (beim Start von 4D werden hier vielleicht 7 oder 10 GB angezeigt, je nach RAM) ziemlich schnell bis auf 0 GB schrumpft … und dann crasht 4D weg.

Viele Grüße, Dietmar

C_LONGINT($i)
C_PICTURE($Pict_G)
READ PICTURE FILE(“Star.png”;$Pict_G)
For ($i;1;200000)
CREATE RECORD([Tabelle])
VARIABLE TO BLOB($Pict_G;[Tabelle]Blob_X)
SAVE RECORD([Tabelle])
End for

4D v16.6, MacOS 10.14.6

PS: Der Code ist natürlich so sinnlos und nur zum Nachvollziehen gedacht. Aufgefallen ist mir das Problem, als ich seit 2008 mit VARIABLE TO BLOB gespeicherte Bilder aus einer alten Datenbank in ein neues Format überführen und speichern wollte (zur Verwendung mit Q2Pix). Dasselbe Problem tritt nämlich auch auf, wenn man zB 150.000 Bilder mit BLOB TO VARIABLE ausliest – mit diesem Code:

C_PICTURE($Pict_G)
ALL RECORDS([Tabelle])
While (Not(End selection([Tabelle])))
BLOB TO VARIABLE([Tabelle]Bild_X;$Pict_G)
NEXT RECORD([Tabelle])
End while

Hi Dietmar,
versuch mal:

<code 4D>
C_PICTURE($Pict_G)
C_Blob($Blob_X)

ALL RECORDS([Tabelle])
While (Not(End selection([Tabelle])))
set blob size($Blob_X;0)
$Blob_X:=[Tabelle]Bild_X
BLOB TO VARIABLE([$Blob_X;$Pict_G)
NEXT RECORD([Tabelle])
End while
set blob size($Blob_X;0)

</code 4D>