gennyo
Posts: 68
Joined: 4/3/2019 Status: offline
|
I'm thinking about some possible solution, though maybe more a "workaround". Since the Pro Edition is now separated into sim core and interface module (so the sim core could run in CLI, I think), maybe the player version could try the same thing. Maybe not a explicit multi-process model, but separate the map drawing module and sim core to a bigger extent may help. I'm thinking about a "watchdog" for the map drawing module. If for some reason it failed, the watchdog or user can choose to restart this part of the program, using any latest available sim core data to initiate the drawing. The core could keep running (and for now, if the red cross appears, it's still running, without map update) and generates information for restarting map generation. And I hope a more separated drawing module could do asynchronous graphic update, independent from the sim core master clocking. I observed the map updates as the sim core generated any new data, so it updates almost every 0.1s in sim time. I can't do proper profiling, but it seems if the map drawing module have a chance to use less CPU time, sim core runs a little faster. A user configurable timing like update the map every 1s or even 5s sim time may help in some situation, I think. A multi-module/thread/process model has a huge IPC overhead and may heavily reduce sim performance, unless using a good enough computer.
|