weakref, memory management and execution slow down in PyQt4
kjs
bfb at riseup.net
Sun Sep 7 15:11:25 EDT 2014
More information about the Python-list mailing list
Sun Sep 7 15:11:25 EDT 2014
- Previous message (by thread): weakref, memory management and execution slow down in PyQt4
- Next message (by thread): weakref, memory management and execution slow down in PyQt4
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Antoine Pitrou: > kjs <bfb <at> riseup.net> writes: >> >> I have come to believe that the growing number of weakrefs is slowing >> down execution. Is my analysis misguided? How can I introspect further? >> If the slowdown can be attributed to weakref escalation, what are some >> next steps? > > The way to analyze this is to build some gradually smaller subsets of your > application until you can isolate what is causing the growth in number of > objects (if any). I would suggest first remove the GUI and replace it with > some dummy functions, to stress your core logic. Thanks for the advice. I commented out the graph generation and PyQt call >>> self.app.processEvents() where in the class __init__ >>> self.app = QtGui.QApplication(sys.argv) This stopped the weakref proliferation. All other objects grow and shrink in number as expected. > > Note that "top" isn't a very reliable tool, as memory fragmentation and > other factors can cause your process' visible size to grow even though > Python's memory consumption may be stable. There are dedicated Python tools > for finer analysis, such as tracemalloc, which is standard on 3.4 and available > as a backport for older versions: > > https://docs.python.org/3/library/tracemalloc.html > http://pytracemalloc.readthedocs.org/ > > But regardless of such tools, the approach above (try to decompose your > workload into separate parts until your find the culprit) is highly recommended. > > Regards > > Antoine. > > -------------- next part -------------- A non-text attachment was scrubbed... Name: 0x8A61431E.asc Type: application/pgp-keys Size: 11239 bytes Desc: not available URL: <http://mail.python.org/pipermail/python-list/attachments/20140907/7bce4702/attachment.key> -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 801 bytes Desc: OpenPGP digital signature URL: <http://mail.python.org/pipermail/python-list/attachments/20140907/7bce4702/attachment.sig>
- Previous message (by thread): weakref, memory management and execution slow down in PyQt4
- Next message (by thread): weakref, memory management and execution slow down in PyQt4
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list