Low level performance measurements

Hi everyone,

I’m interested in running activitywatch on a couple of laptops but would like to have an idea of the resource usage and impact of using the different plugins. Mostly would like to know about frequency and size of HDD/SSD hits (read/write), CPU usage, RAM usage, etc.

Does anyone have any information along these lines? It doesn’t have to be super up-to-date, just trying to get a ballpark idea of what to expect.

As a side note, I saw that there’s a Telemetry thread on GitHub but it seems geared to collect usage data which may not include the above.

RAM/CPU: ActivityWatch itself is composed of multiple processes, the heaviest one is aw-server and on my computer that’s currently using around 70MB of RAM but that will also depend on yout OS. The aw-watchers are usually very lightweight and do not take more than a few MB of RAM each and barely any CPU usage, but the more watchers you have the more resources aw-server will need (mostly in terms of CPU rather than RAM).

HDD/SSD hits: We did quite a few optimizations about a year ago regarding this (we now do pre-merging of events before committing them to the database, lowering the writes significantly). If you want to have even better performance you can change the the datastore in aw-server.ini from “peewee” to “sqlite” which will be significantly faster both in terms of CPU and writes to the HDD/SSD as it now uses SQL transactions which are committed much more rarely.

That’s nothing more than an idea currently and if implemented in the future it will be possible to turn it off.