[IronPython] Memory Leak in CreateScriptSource?
Dody Gunawinata
empirebuilder at gmail.com
Fri Dec 26 16:36:37 CET 2008
With the GC.Collect lines removed, this is how it looks like (after counting
to 40,000). I started the tasklist command after around 25K.
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
IronPythonLeaker.exe 5296 Console 1 146,840 K
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
IronPythonLeaker.exe 5296 Console 1 147,948 K
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
IronPythonLeaker.exe 5296 Console 1 148,344 K
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
IronPythonLeaker.exe 5296 Console 1 153,616 K
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
IronPythonLeaker.exe 5296 Console 1 154,064 K
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
IronPythonLeaker.exe 5296 Console 1 156,364 K
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
IronPythonLeaker.exe 5296 Console 1 160,612 K
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
IronPythonLeaker.exe 5296 Console 1 174,568 K
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
IronPythonLeaker.exe 5296 Console 1 180,232 K
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
IronPythonLeaker.exe 5296 Console 1 189,904 K
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
IronPythonLeaker.exe 5296 Console 1 192,856 K
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
IronPythonLeaker.exe 5296 Console 1 198,900 K
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
IronPythonLeaker.exe 5296 Console 1 201,572 K
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
IronPythonLeaker.exe 5296 Console 1 201,604 K
On Fri, Dec 26, 2008 at 5:31 PM, Dody Gunawinata <empirebuilder at gmail.com>wrote:
> I run above code in a console using IronPython 2.0 Final Version and here
> is the output (on Vista) using Tasklist command. The final result doubles
> the in memory size; I stopped the measurement when it hits 12,000
>
> Image Name PID Session Name Session# Mem
> Usage
> ========================= ======== ================ ===========
> ============
> IronPythonLeaker.exe 5248 Console 1 33,532
> K
>
> Image Name PID Session Name Session# Mem
> Usage
> ========================= ======== ================ ===========
> ============
> IronPythonLeaker.exe 5248 Console 1 39,204
> K
>
> Image Name PID Session Name Session# Mem
> Usage
> ========================= ======== ================ ===========
> ============
> IronPythonLeaker.exe 5248 Console 1 43,692
> K
>
> Image Name PID Session Name Session# Mem
> Usage
> ========================= ======== ================ ===========
> ============
> IronPythonLeaker.exe 5248 Console 1 42,952
> K
>
> Image Name PID Session Name Session# Mem
> Usage
> ========================= ======== ================ ===========
> ============
> IronPythonLeaker.exe 5248 Console 1 45,888
> K
>
> Image Name PID Session Name Session# Mem
> Usage
> ========================= ======== ================ ===========
> ============
> IronPythonLeaker.exe 5248 Console 1 45,928
> K
>
> Image Name PID Session Name Session# Mem
> Usage
> ========================= ======== ================ ===========
> ============
> IronPythonLeaker.exe 5248 Console 1 45,956
> K
>
> Image Name PID Session Name Session# Mem
> Usage
> ========================= ======== ================ ===========
> ============
> IronPythonLeaker.exe 5248 Console 1 44,992
> K
>
> Image Name PID Session Name Session# Mem
> Usage
> ========================= ======== ================ ===========
> ============
> IronPythonLeaker.exe 5248 Console 1 49,520
> K
>
> Image Name PID Session Name Session# Mem
> Usage
> ========================= ======== ================ ===========
> ============
> IronPythonLeaker.exe 5248 Console 1 50,592
> K
>
> Image Name PID Session Name Session# Mem
> Usage
> ========================= ======== ================ ===========
> ============
> IronPythonLeaker.exe 5248 Console 1 50,636
> K
>
> Image Name PID Session Name Session# Mem
> Usage
> ========================= ======== ================ ===========
> ============
> IronPythonLeaker.exe 5248 Console 1 52,632
> K
>
> Image Name PID Session Name Session# Mem
> Usage
> ========================= ======== ================ ===========
> ============
> IronPythonLeaker.exe 5248 Console 1 52,788
> K
>
> Image Name PID Session Name Session# Mem
> Usage
> ========================= ======== ================ ===========
> ============
> IronPythonLeaker.exe 5248 Console 1 52,884
> K
>
> Image Name PID Session Name Session# Mem
> Usage
> ========================= ======== ================ ===========
> ============
> IronPythonLeaker.exe 5248 Console 1 53,032
> K
>
> Image Name PID Session Name Session# Mem
> Usage
> ========================= ======== ================ ===========
> ============
> IronPythonLeaker.exe 5248 Console 1 62,916
> K
>
> Image Name PID Session Name Session# Mem
> Usage
> ========================= ======== ================ ===========
> ============
> IronPythonLeaker.exe 5248 Console 1 62,456
> K
>
> Image Name PID Session Name Session# Mem
> Usage
> ========================= ======== ================ ===========
> ============
> IronPythonLeaker.exe 5248 Console 1 67,668
> K
>
> Image Name PID Session Name Session# Mem
> Usage
> ========================= ======== ================ ===========
> ============
> IronPythonLeaker.exe 5248 Console 1 65,880
> K
>
> Image Name PID Session Name Session# Mem
> Usage
> ========================= ======== ================ ===========
> ============
> IronPythonLeaker.exe 5248 Console 1 72,260
> K
>
> Image Name PID Session Name Session# Mem
> Usage
> ========================= ======== ================ ===========
> ============
> IronPythonLeaker.exe 5248 Console 1 73,644
> K
>
>
> On Thu, Dec 25, 2008 at 3:37 PM, Christian Schmidt <
> christian2.schmidt at gmx.de> wrote:
>
>> Hi,
>>
>> the following code snippet allocates constantly more and more memory.
>> Moving .Compile() outside the loop works as expected.
>>
>> private static void LeakTest()
>> {
>> var runtime = Python.CreateRuntime();
>> var engine = runtime.GetEngine("py");
>> var sum = 0.0;
>>
>> while (true)
>> {
>> var code = engine.CreateScriptSourceFromString("1.0+2.0").Compile();
>> sum += code.Execute<double>();
>> GC.Collect();
>> GC.WaitForPendingFinalizers();
>> GC.Collect();
>> Console.WriteLine(sum);
>> }
>> }
>>
>> Any ideas?
>>
>> Merry Christmas,
>>
>> Christian
>> _______________________________________________
>> Users mailing list
>> Users at lists.ironpython.com
>> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>>
>
>
>
> --
> nomadlife.org
>
>
--
nomadlife.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20081226/e7005fee/attachment.html>
More information about the Ironpython-users
mailing list