Comments (12)
A little more investigation. By just running ps aux |grep qtile
I can watch qtile grow by about 4 bytes/sec. So I disabled the charts (CPU/etc) and ran a Xephyr instance. It remained constant while the instance with the charts continued to grow.
I guess I'm at ~124Megs after 18 hours.
from qtile.
I'm on the trail of a similar leak. I'm not seeing a gradual growth in memory usage, but every now and agian, I come down in the morning to find qtile has grown to about a gig. My gut feeling is that this is a leak in an underlying library, which is going to make it a bugger to track down.
from qtile.
I'm assuming that the culprit may be cairo/pycairo then? I haven't looked into either. Is upstream responsive? Are there tests to run valgrind against cairo?
from qtile.
Yes, I think cairo/pycairo is the likely culprit if the problem is definitely related to the graph wigets. I haven't gone to the effort to run valgrind against cairo, so I'm not sure. Sigh, I guess it's going to be necessary to do this if we can't find the problem by carefully eliminating calls.
from qtile.
I'm still seeing ~4b/sec when I have charts enabled and no growth when they are disabled.
I tried to see if I could get a simple testcase to replicate here:
https://gist.github.com/727312
This just draws directly to the context and bypasses the drawer layer. It tries to chart a bunch of points, but it is NOT exhibiting memory growth. Note that some of the drawer methods are missing. Perhaps the drawer layer is where the leaking is occurring?
from qtile.
Also tried the following. Though it grew in memory while running, it didn't report orphaned python objects very often. So I'm assuming the Python side is behaving ok.
https://gist.github.com/734308
from qtile.
I've investigated this some time ago, and IIRC it's memory leak in xpyb library. And I've stopped at attempts to guess what xpyb is newest and right one to use :) I'll give a try once more later.
from qtile.
Other reports of pycairo memory chomping...
http://dotsony.blogspot.com/2011/06/calendar-update-part-ii-after-release.html
from qtile.
@mattharrison, this particular memory leak was fixed in qtile by making textlayout kinda singleton. I'm still sure it was xpyb leak in my case.
from qtile.
I've tracked down minimal testcase for memory leak in xpyb. Here is a bug with a testcase:
https://github.com/dequis/xpyb-ng/issues/5
BTW, Are these recomended bindings?
from qtile.
Hi all,
I believe upstream has fixed this issue. I've merged their work into xpyb-ng and posted it here: https://github.com/tych0/xpyb-ng
I'll try and get some if this stuff into xpyb-ng on the qtile org soon, but for now that repo should work and doesn't leak nearly as fast (although it seems like it still leaks, unfortunately...).
from qtile.
Can we make sure that @dmpayton's docs are updated to work with this?
from qtile.
Related Issues (20)
- has no attribute current_window HOT 3
- get_volume_command not working on PulseVolume widget HOT 2
- Qtile isn't running as wayland wm HOT 8
- 0.25.0: Five failing tests HOT 13
- [wayland] Keyboard stopped working on master HOT 9
- Data racing in keybinding execution HOT 1
- applying a wallpaper image does not get rid of the old one HOT 5
- Error compile qtile HOT 5
- Shortcuts recognition flaky HOT 1
- flaky tests do not report anything interesting
- <class 'libqtile.core.manager.Qtile'> has no attribute current_window HOT 2
- PulseVolume widget breaks on latest update HOT 2
- Custom spawn location for floating windows HOT 2
- Widget crashed: Systray HOT 15
- Update documentation to use pipx HOT 13
- Dialogs are rendered behind apps sometimes HOT 9
- Config error lazy related HOT 4
- Docs suggest creating user writable script in home folder run by root? HOT 2
- Source install instructions refer to nonexistent PyPI packages HOT 4
- _NET_DESKTOP_NAMES is different from group names HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from qtile.