[PyKDE] Constantly increasing memory usage in (some) PyQt
applications
Umit Oztosun
umit at liqia.com
Fri Jan 14 13:18:36 GMT 2005
Hello,
I've been using PyQt for about six months. IMHO, PyQt is *great*, a perfect
tool for creating first-class portable GUI applications. It is also very
enjoyable to work with Python and Qt, both are elegant and nicely designed.
However, I've some issues about the memory usage of PyQt applications, both
the ones that I wrote and that I use. As an example I've examined the memory
usage of Eric with K System Guard:
VmSize VmRss
Initial 49056 35168
Open Settings Window 51116 37884
Close & Open Again 52564 39440
Close & Open Again 54080 40952
Close & Open Again 55724 42588
Close & Open Again 57280 44088
Close & Open Again 58728 45588
Both VmSize and VmRss values are constantly increasing. For the test, I
started Eric3, then repeatedly clicked Settings -> Preferences and close
preferences dialog.
I observe similar memory usage patterns on my own code. As the complexity of
my dialogs/widgets increase, I see more of incresing memory usage.
I tried to track down possible leakages on my code by using gc module,
specially gc.get_objects() in Python level. But I still observe increased
memory usage even if gc.get_objects() seems to stay constant.
I googled and searched various lists about Python, as far as I understand,
Python never releases allocated memory back to the OS, and some objects like
integers and floats are basically immortal. So it is normal to observe an
"always increasing memory usage" pattern because memory is never released
back. However, once the objects are garbage collected, released memory is
available to be used by new objects. So, for a simple situation like opening
and closing a dialog, I think the memory usage should remain constant at
*some* point.
Is this behaviour normal? Can it harm long-running GUI processes?
Best regards,
Umit OZTOSUN
System Information:
Intel P4 2.5 GHz, 512 MB RAM
Debian Testing, Python 2.3.4, Qt 3.3.3, PyQt 3.12, SIP 4.0.1, Eric 3.5.0
More information about the PyQt
mailing list