2019-12-12 01:46 CET

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0006264Spring engineGeneralpublic2019-07-27 23:25
Assigned ToKloot 
Product Version104.0 +git 
Target VersionFixed in Version104.0 +git 
Summary0006264: Performance regression from 104.0.1-1289-gfd5619c to 104.0.1-1296-gfc8c95e maintenance
DescriptionPlayers reported a recent increase in performance issues. I am unable to reproduce the issue so far, but the three benchmarks that players have submitted so far all show a significant issue. The most recent issue narrows down the problem to between 104.0.1-1289-gfd5619c to 104.0.1-1296-gfc8c95e. On the next iteration I can have people benchmark inside this range.

The benchmark is the same as the one I created for the Lua GC issue that occurred around 104.0.1-300. The most recent benchmark shows a 35% increase in time between widget:Updates so I figured I may as well make the ticket now. I'll add more data to the sheet as it comes in. The sheet also includes the graphics information in the last column.
Additional InformationThread: http://zero-k.info/Forum/Thread/28646
Benchmark files: https://github.com/ZeroK-RTS/Zero-K/issues/3668
Data: https://docs.google.com/spreadsheets/d/1JBBEW-rSY4oWJSEWge4fJbPtBSFMTyVB99xW1jvodWw/edit?usp=sharing
TagsNo tags attached.
Checked infolog.txt for ErrorsIrrelevant
Attached Files




Kloot (developer)

Last edited: 2019-07-24 17:05

View 4 revisions

Of this given range, 1292 seems the best candidate because extra mutexes were added to the VFS. ZK ships with VFSCacheArchiveFiles=0, so the impact of these (rather necessary) locks will be felt more depending on ingame VFS access patterns and HDD read performance.


Google_Frog (reporter)

Should VFSCacheArchiveFiles not be set to 0? My only information about the setting is from https://springrts.com/mantis/view.php?id=6163.


Kloot (developer)

VFSCacheArchiveFiles primarily exists to reduce Spring's memory footprint (by coincidence it also happened to prove useful for isolating 0006163), and should have minimal runtime impact with a fast SSD and decently sized operating system disk cache. You usually want to set this to 0, but apparently there are still systems which violate these conditions in 2019 so it can't be universally applied.


Google_Frog (reporter)

The benchmarks from ksaar indicate that 1292 is fine and 1296 contains the issue.


Google_Frog (reporter)

1294 is fine so the issue is introduced in these two commits:
- https://github.com/spring/spring/commit/55407fb8eaafbe94e5267bf29c02f25ac2843e39
- https://github.com/spring/spring/commit/fc8c95ee710764ccd3cecfc1a41c8d3207e49d27


Kloot (developer)

Please test 1322-gd3b03b5 when it arrives.


Google_Frog (reporter)

1322-gd3b03b5 seems to work. I'll comment if further benchmarking finds a smaller issue.


Google_Frog (reporter)

We've been using 1322-gd3b03b5 for two days and further data indicates that its performance is the same as 1294. I think this can be closed.


Kloot (developer)

Thanks, though I'll promote 1325-g91bf006 (which includes another memory optimization for frequent reloading) as the version to sit on.

-Issue History
Date Modified Username Field Change
2019-07-24 09:39 Google_Frog New Issue
2019-07-24 10:30 Kloot Note Added: 0020057
2019-07-24 10:32 Kloot Note Edited: 0020057 View Revisions
2019-07-24 10:36 Kloot Note Edited: 0020057 View Revisions
2019-07-24 15:52 Google_Frog Note Added: 0020058
2019-07-24 16:39 Kloot Note Added: 0020059
2019-07-24 17:05 Kloot Note Edited: 0020057 View Revisions
2019-07-25 04:38 Google_Frog Note Added: 0020060
2019-07-25 07:07 Google_Frog Note Added: 0020061
2019-07-25 23:36 Kloot Note Added: 0020062
2019-07-26 08:05 Google_Frog Note Added: 0020063
2019-07-27 17:00 Google_Frog Note Added: 0020066
2019-07-27 23:25 Kloot Assigned To => Kloot
2019-07-27 23:25 Kloot Status new => resolved
2019-07-27 23:25 Kloot Resolution open => fixed
2019-07-27 23:25 Kloot Fixed in Version => 104.0 +git
2019-07-27 23:25 Kloot Note Added: 0020067
+Issue History