2021-01-16 03:33 CET

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0006329Spring engineLuapublic2019-11-11 22:17
Assigned ToKloot 
Product Version104.0 +git 
Target VersionFixed in Version104.0 +git 
Summary0006329: Increase maxAllocedBytes for lua
DescriptionCurrently, into very long and large team games (1h+, 12v12+), lua GC pressure is a source of noticeable difference in performance between the 32bit and 64bit spring engine versions. The 64bit version takes up much more memory, presumably due to higher word/pointer sizes.

It would be nice if the memory spring is willing to allocate for 64bit could be doubled to compensate, or perhaps be made configurable.
Additional InformationAs far as I can tell, maxAllocedBytes is referenced in exactly four lines:
- Its definition
- A debugging function displaying usage
- The check during allocation determining whether to force a GC check/disable luaui/hard crash
- Computing the GC pressure ratio deciding whether to perform idle GC

If so, the variable could potentially be changed from constexpr to dynamic, or even increased to a 64bit variable for people with a lot of RAM on 64bit. Long term, I'm not sure what the ideal interface would look like, whether that's a value LuaMenu can change, a value that can be read from springsettings.cfg, or some other approach.
TagsNo tags attached.
Checked infolog.txt for ErrorsIrrelevant
Attached Files




Google_Frog (reporter)

I have done a little testing with win64 and the performance appears to be worse than win32. The amount of lua memory allocated in win64 is significantly higher than is normal for win32, so raising the memory limit for win64 makes sense and may allow for more a more realistic performance comparison.


Kloot (developer)

doubling the limit for spring64 builds is reasonable (and has been done in 1437+), making it configurable not so much. 1500MB of Lua memory allows for quite enough insanity.

I'll also take this opportunity to remind everyone about the existence of UseLuaMemPools (forcibly disabled in ZK) regarding performance and fragmentation concerns.

-Issue History
Date Modified Username Field Change
2019-11-09 01:17 esainane New Issue
2019-11-11 02:18 Google_Frog Note Added: 0020212
2019-11-11 22:17 Kloot Assigned To => Kloot
2019-11-11 22:17 Kloot Status new => resolved
2019-11-11 22:17 Kloot Resolution open => fixed
2019-11-11 22:17 Kloot Fixed in Version => 104.0 +git
2019-11-11 22:17 Kloot Note Added: 0020217
+Issue History