-
Notifications
You must be signed in to change notification settings - Fork 84
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Performance Issues and NOS3 Time Driver Slowdown #285
Comments
Further notes:
|
Also when speeding up to 32x, it went to 32.05x instead, and then when slowing back down, it was at 16.03x and 8.01x instead of 16x and 8x like the first time through. |
I also noticed this issue and did a bit of digging. Looking at while(1){
std::this_thread::sleep_for(std::chrono::microseconds(_real_microseconds_per_tick));
[Do stuff]
} This method doesn't take into account the amount of time On the latest main branch with default config, I get an actual speed-up of 0.8.
It would be better to measure how long [Do stuff] takes and sleep for while(1){
do{
gettimeofday(&_now, NULL);
} while (time_diff() < _real_microseconds_per_tick);
// Added variable for updating the display
_last_time_diff = time_diff(); // Modified time_diff() to return us
_then = _now;
} |
…olved issue with running minimal-config;
[nasa/nos3#285] Attempted to implemented suggestions from sdunlap-afit;
Merged into |
While taking performance metrics, we found that there is extreme slowdown in time driver (between 0.66 and 0.75 speed with one satellite, down to ~0.22 with 8 satellites, around ~0.33 with 4 satellites), and it is still not eating up as many resources as it could (stays at using less than one additional core and around 1-2GB additional RAM per extra craft). This likely means that something is slowing down time driver, as it waits for all apps to post before it ticks. With 1 satellite, it will drive at 0.92-1.02 speed if you attempt to run a 2x. Will gain metrics for running at 4 satellites and see if increasing speed would bring it to parity, but we should resolve it so that at 1x speed it will take what resources it needs to run as close to 1x as possible.
The text was updated successfully, but these errors were encountered: