ActivityWatch / ActivityWatch/aw-server

Improving performance when performing summary over a day and over a time period

Open
#49 5 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
128
Forks
94
Avg merge
4d 18h
Merged PRs (30d)
3

Description

From my understanding of the code, and documentation, every time the localhost page reloads, the top activities in all categories are recalculated from the beginning. If you have a lot of events, that can lead to a timeout( https://github.com/ActivityWatch/activitywatch/issues/217). I think performance could be improved by creating a new table in the database where you store the summarized events. The columns would be:

Key(URLs, domains, app_events, title_events), Value(i.e github.com, localhost:5600), Duration, and Day.

Thus every time the page reloads, it only summarizes the new events, then adds the new domains/urls/etc and updates the existing ones. Then you just retrieve the results. This has two advantages:

1. Decreases the time to calculate the summary for the day, as you perform a lot fewer calculations.
2. Makes analyzing statistics for a week, month, year a lot faster since the table will have a summary of the events for every day. Therefore, you just retrieve the right amount of days and perform analysis on them.

@ErikBjare , @johan-bjareholt, what do you guys think? Are there any current initiatives like this already in the works? If not, I can start working on it

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.