Hello world, =) It was a long time since my last blog post (over 1 year and a half). During this time I moved between Italy, Prague and Shenzhen (China), and also contributed a couple of nice patches for Python I want to blog about when Python 3.8 will be out: zero-copy for shutil.copy*() functions […]
Author: Giampaolo Rodola
psutil 5.4.0 with AIX support is out
After a long time psutil finally adds support for a brand new exotic platform: AIX! Honestly I am not sure how many AIX Python users are out there (I suppose not many) but still, here it is. For this we have to thank Arnon Yaari who started working on the porting a couple of years […]
psutil 5.3.0 with full Unicode support is out
psutil 5.3.0 is finally out. This release is a major one, as it includes tons of improvements and bugfixes, probably like no other previous release. It is interesting to notice how huge the diff between 5.2.2 and 5.3.0 is. This is due to the fact that I’ve been travelling quite a lot this year, so I kept […]
psutil 5.1.0: temperatures, batteries and cpu frequency
OK, here’s another psutil release. Main highlights of this release are sensors-related APIs. Temperatures It is now possible to retrieve hardware temperatures. The relevant commit is here. Unfortunately this is Linux only. I couldn’t manage to implement this on other platforms mainly for two reasons: On Windows it is hard to do this in a […]
psutil 5.0.0 is around twice as fast
OK, this is a big one. Starting from psutil 5.0.0 you can query multiple Process information around twice as fast than with previous versions (see original ticket and updated doc). It took me 7 months, 108 commits and a massive refactoring of psutil internals (here is the big commit), and I can safely say this is one […]
psutil 4.4.0 released – improved Linux memory metrics and OSX support
OK, here’s another psutil release. Main highlights of this release are more accurate memory metrics on Linux and different OSX fixes. Here goes. Linux virtual memory This new psutil release sets a milestone regarding virtual_memory() metrics on Linux which are now calculated way more precisely (see commit). Across the years different people complained that the numbers […]
psutil 4.2.0, Windows services and Python
New psutil 4.2.0 is out. The main feature of this is the support for Windows services: >>> list(psutil.win_service_iter()) [<WindowsService(name=’AeLookupSvc’, display_name=’Application Experience’) at 38850096>, <WindowsService(name=’ALG’, display_name=’Application Layer Gateway Service’) at 38850128>, <WindowsService(name=’APNMCP’, display_name=’Ask Update Service’) at 38850160>, <WindowsService(name=’AppIDSvc’, display_name=’Application Identity’) at 38850192>, …] >>> s = psutil.win_service_get(‘alg’) >>> s.as_dict() {‘binpath’: ‘C:WindowsSystem32alg.exe’, ‘description’: ‘Provides support for 3rd […]
psutil 4.0.0 and how to get “real” process memory and environ in Python
New psutil 4.0.0 is out, with some interesting news about process memory metrics. I’ll just get straight to the point and describe what’s new. “Real” process memory info Determining how much memory a process really uses is not an easy matter (see this and this). RSS (Resident Set Size), which is what most people usually […]
How to always execute exit functions in Python
…or why atexit.register() and signal.signal() are evil UPDATE (2016-02-13): this recipe no longer handles SIGINT, SIGQUIT and SIGABRT as aliases for “application exit” because it was a bad idea. It only handles SIGTERM. Also it no longer support Windows because signal.signal() implementation is too different than POSIX. Many people erroneously think that any function registered […]
NetBSD support for psutil
Roughly two months have passed since I last announced psutil added support for OpenBSD platforms. Today I am happy to announce we also have NetBSD support! This was contributed by Thomas Klausner, Ryo Onodera and myself in PR #570. Differences with FreeBSD (and OpenBSD) NetBSD implementation has similar limitations as the ones I encountered with OpenBSD. Again, […]
OpenBSD support for psutil
OK, this is a big one: starting from version 3.3.0 (released just now) psutil will officially support OpenBSD platforms. This was contributed by Landry Breuil (thanks dude!) and myself in PR #615. The interesting parts of the code changes are this and this. Differences with FreeBSD As expected, OpenBSD implementation is very similar to FreeBSD‘s (which was already in place), that […]
psutil 3.0
Here we are. It’s been a long time since my last blog post and my last psutil release. The reason? I’ve been travelling! I mean… a lot. I’ve spent 3 months in Berlin, 3 weeks in Japan and 2 months in New York City. While I was there I finally had the chance to meet […]
psutil 2.1.2: python wheels
psutil 2.1.2 is out. This release has been cooking for a while now, and that’s because I’ve been travelling for the past 3 months between Spain, Japan and Germany. Hopefully I will be staying in Berlin for a while now, so I will have more time to dedicate to the project. The main new “feature” […]
Python and sendfile
sendfile(2) is a UNIX system call which provides a “zero-copy” way of copying data from one file descriptor (a file) to another (a socket). Because this copying is done entirely within the kernel, sendfile(2) is more efficient than the combination of “file.read()” and “socket.send()”, which requires transferring data to and from user space. This copying […]
Goodbye Google Code, I’m moving to Github
8 years ago I started hosting my first open source project (pyftpdlib) on Google Code and I later ended up also hosting psutil and pysendfile. Back then GC had just been released and similarly to other Google products I appreciated the clean and minimalistic interface, the excellent bug tracker and the freedom to choose between […]