Documentation: Update low level changes document

pull/112/head
Jonathan G Rennison 5 years ago
parent c4d22226d1
commit a7be39d07a

@ -15,7 +15,8 @@ This document does not describe the player-visible changes/additions described i
* Attempt to handle segfaults which occur within the crashlog handler (Unix).
* Emit a "crash" log, savegame and screenshot on multiplayer desync.
* Add crash/desync information to output screenshot and savegame files.
* Send a copy of the desync crash log to the multiplayer server.
* Multiplayer server and client exchange desync logs after a desync occurs.
* Decrease sync frame period when desync occurs.
#### Assertions
@ -52,6 +53,8 @@ Various data structures have been replaced with B-tree maps/sets (cpp-btree libr
Various lists have been replaced with vectors or deques, etc.
Remove mutexes from SmallStack, only used from the main thread.
Use std::string in CommandContainer instead of a giant static buffer.
Add a free bitmap for pool slots.
Maintain free list for text effect entries.
### Vehicles
@ -79,6 +82,14 @@ Completely change link graph job scheduling to make the duration of a job and th
Various use of custom allocators, etc.
Early abort link graph threads if abandoning/quitting the game.
Various forms of caching and incremental updates to the link graph overlay.
Change FlowStat from an RB-tree to a flat map with small-object optimisation.
Change FlowStatMap from an RB-tree to a B-tree indexed vector.
Replace MCF Dijkstra RB-tree with B-tree.
Skip per source node MCF Dijkstra when all demand for that node has been satisfied.
### Pathfinder
YAPF: Reduce need to scan open list queue when moving best node to closed list
### Save and load
@ -87,6 +98,17 @@ Extend gamelog to not truncate version strings.
Save/load the map in a single chunk, such that it can be saved/loaded in one pass.
Various other changes to savegame format and settings handling, see readme and code for details.
Replace read/write accessors and buffering.
Perform savegame decompression in a separate thread.
Pre-filter SaveLoad descriptor arrays for current version/mode, for chunks with many objects.
### Other performance improvements
Use multiple threads for NewGRF scan MD5 calculations, on multi-CPU machines.
Avoid redundant re-scans for AI and game script files.
Avoid iterating vehicle list to release disaster vehicles if there are none.
Avoid quadratic behaviour in updating station nearby lists in RecomputeCatchmentForAll.
Increase FIO buffer size.
Avoid unnecessary calls to SettingsDisableElrail in AfterLoadGame.
### Command line
@ -107,3 +129,4 @@ Cache font heights.
Cache resolved names for stations, towns and industries.
Change inheritance model of class Window to keep UndefinedBehaviorSanitizer happy.
Various other misc changes to reduce UndefinedBehaviorSanitizer spam.
Add a chicken bits setting, just in case.

Loading…
Cancel
Save