Standard modules will get compiled into static types which are not collectible by the CLR. This will result in the leak you're seeing. You can enable GenerateAsSnippets mode (-X:GenerateAsSnippets at the command line, or IronPython.Compiler.Options.GenerateModulesAsSnippets = true) and you should see the leak go away.
-----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Stute, Detlef ALRT/EEG4 (Fa. epos) Sent: Wednesday, November 29, 2006 3:13 AM To: [email protected] Subject: [IronPython] Memory leak at import? I use the IronPython.dll at my own program. The python engine is running in a worker thread (MTAThread). I create a new engine each time and at the end I call engine.Dispose(). If I call test.py with the following content: import sys from time import * import os print 'Hello world' If I disable the line "import os" everything is ok. But if it is enabled, each call causes in a memory leak of 4 MB. Does anybody else have the same problem or is there a solution? Best regards Detlef Stute www.seatec-gmbh.com ########################################## CODE ##### start the thread EngineOptions eo = new EngineOptions(); eo.ExceptionDetail = true; eo.ShowClrExceptions = true; engine = new PythonEngine(eo); // create stream to get the messages from the python engine stream = new NotifyingStream(); engine.SetStandardOutput(stream); engine.SetStandardError(stream); workerThread = new Thread(ExecuteScriptWorker); // worker thread gets same culture as its caller workerThread.CurrentUICulture = System.Threading.Thread.CurrentThread.CurrentUICulture; workerThread.Start(parameters); #### the thread function [MTAThread] private static void ExecuteScriptWorker(object parameters) { WorkerParameters wp = parameters as WorkerParameters; try { engine.ExecuteFile(wp.scriptFile); } catch (ThreadAbortException ex) { // do something } finally { engine.Dispose(); Thread.Sleep(100); engine = null; workerThread = null; GC.Collect(); } Detlef Stute Automotive Lighting Reutlingen GmbH ALRT/EEG4 Tübinger Str. 123 72762 Reutlingen Telefon: +49 (0) 7121 35-39952 Fax: +49 (0) 7121 35-3639952 mailto:[EMAIL PROTECTED] _______________________________________________ users mailing list [email protected] http://lists.ironpython.com/listinfo.cgi/users-ironpython.com _______________________________________________ users mailing list [email protected] http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
