Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #77671 > unrolled thread

Re: weakref, memory management and execution slow down in PyQt4

Started byAntoine Pitrou <antoine@python.org>
First post2014-09-07 13:28 +0000
Last post2014-09-07 13:28 +0000
Articles 1 — 1 participant

Back to article view | Back to comp.lang.python

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: weakref, memory management and execution slow down in PyQt4 Antoine Pitrou <antoine@python.org> - 2014-09-07 13:28 +0000

#77671 — Re: weakref, memory management and execution slow down in PyQt4

FromAntoine Pitrou <antoine@python.org>
Date2014-09-07 13:28 +0000
SubjectRe: weakref, memory management and execution slow down in PyQt4
Message-ID<mailman.13848.1410097319.18130.python-list@python.org>
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.

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.

[toc] | [standalone]


Back to top | Article view | comp.lang.python


csiph-web