Documentation: Update low level changes document
This commit is contained in:
@@ -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.
|
||||
|
Reference in New Issue
Block a user