Quote:
Originally Posted by jhay777
What could cause this behaviour on some systems but not others (apart from the obvious OS and AV differences)? Does calibre rely on any runtimes, DLLs, etc that may vary across systems and be the cause of the memory increases that cybmole, onedot3, me and others are seeing?
|
Almost anything. Examples: programs that attempt to communicate between processes, resource monitors, differences in device drivers, hardware differences (memory management & processors), different levels of windows components, different networking configurations, and the like. And don't leave off the possibility of bugs in windows itself triggered by some configurations.
My system (Win7/pro/32) exhibits this 'problem' (actually, I don't care about it so it isn't a problem for me). I just spent close to 10 hours attempting to trace it. Results on my system:
- The problem starts after calibre is open 10 to 20 minutes. Once it starts, the process space grows by 4K every 3 to 5 seconds.
- Calibre itself (python) uses no more memory, even when process size is growing. Calibre can see that the process space has grown, but it has allocated nothing to cause it.
- The problem happens whether or not calibre is minimized to the systray.
- The problem happens whether or not the systray is enabled.
- The problem 'stops' whenever almost anything is touched, such as killing another systray application or clicking on calibre. As far as I can tell, the memory is not reclaimed. The problem restarts in 10 to 20 minutes.
- Killing all interesting systray apps (secunia PSI, dropbox, MS Security essentials, Apache, printer monitors) has no effect other than to sometimes cause the problem to stop for a time.
- - Firefox and Thunderbird both do the same thing on my system, that is from time to time they grow by 4K every few seconds.
Bottom line: this isn't calibre. It might be an interaction between QT and windows, but the fact that the Mozilla apps do it as well argues against that. In any event, there is nothing I can do to fix it, because the problem is almost certainly not inside calibre source code. I give up.
I have shared the experiment details with Kovid in case he has more ideas. I won't hold my breath.