majikat768 / HuntStatsLogger

stats logger for Hunt: Showdown
MIT License
62 stars 7 forks source link

Having a large number of matches recorded causes app to lag quite a lot. #45

Open majikat768 opened 1 year ago

majikat768 commented 1 year ago

At about 1000 hunts recorded, every time a new Hunt is logged, the app halts while the UI is repopulated.

Could implement more multithreading, better would be to cleanup how the data is loaded every iteration, so every hunt doesn't have to be read every time

majikat768 commented 1 year ago

Made a few changes to help. One of the bottlenecks was in how teams are recorded under My Teams, so now teams to track will be stored in settings, and they can be calculated by the app or entered manually.

majikat768 commented 1 year ago

Next most noticeable bottleneck is the Top Hunts tab. the sorting algorithms aren't really optimized at all.

majikat768 commented 1 year ago

Changed how the database is queried for sorting top hunts, seemed to speed everything up a lot. Going to test for a while, and eventually post a new build.

madmax01 commented 1 year ago

May interesting a kinda "archive" logic and retention to avoid pulling stats from everything. may just interested to keep stats for max x Games. rest go archive

majikat768 commented 1 year ago

I was thinking that too, I might add an option to archive old games, which would essentially just reset the tracker by starting a new database file.

Rick45 commented 1 year ago

how about to have a date time picker? with a start and finish as default the last seven days( or pre-defined by the user).

majikat768 commented 1 year ago

There actually is one, it's just not implemented particularly well...it mostly just limits how many are shown in the drop down, but I think I could improve it so it'll only ever load in that many too.

majikat768 commented 1 year ago

Added a new way to limit the number of hunts loaded at once to a specific count, which is set by the user under Settings. default is 25. I have mine at 100, which seems to be performing pretty well, and the lag is only really noticeable at 200+.

Because this affects all data (except total hunt count in header bar), I may want to add a new tab with Lifetime stats as well.

Still testing but it seems to be working, hopefully will be able to post as a new exe build soon

Rick45 commented 1 year ago

i have build the new version and also seems to be working fine, i have played around with the value without any issues for now.

nbergman commented 1 year ago

Just to provide some insight, I'm a little over 3300 Hunts logged on your app and with the latest update, it's doing a lot better. It may be that I lost some data from a recent update (I feel like some stats are missing) but it's a lot smoother than it has been in the past. HuntLogger

Rick45 commented 1 year ago

I lost some data from a recent update (I feel like some stats are missing)

@nbergman the update adds a setting that limits the number of games to fetch: imagem

that is why looks like you lost some data, as it shows only the last X match's, if you change that to 4000 it will show all of them but will lag again :(