View Issue Details

IDProjectCategoryView StatusLast Update
0006264Spring engineGeneralpublic2019-07-27 23:25
ReporterGoogle_Frog Assigned ToKloot  
PrioritynormalSeveritymajorReproducibilitysometimes
Status resolvedResolutionfixed 
Product Version104.0 +git 
Fixed 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

Activities

Kloot

2019-07-24 10:30

developer   ~0020057

Last edited: 2019-07-24 17:05

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

2019-07-24 15:52

reporter   ~0020058

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

Kloot

2019-07-24 16:39

developer   ~0020059

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

2019-07-25 04:38

reporter   ~0020060

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

Google_Frog

2019-07-25 07:07

reporter   ~0020061

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

2019-07-25 23:36

developer   ~0020062

Please test 1322-gd3b03b5 when it arrives.

Google_Frog

2019-07-26 08:05

reporter   ~0020063

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

Google_Frog

2019-07-27 17:00

reporter   ~0020066

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

2019-07-27 23:25

developer   ~0020067

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
2019-07-24 10:36 Kloot Note Edited: 0020057
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
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