One interesting thing about GC stats, is that deleting Canvas and Failure Manager modules had the biggest impact on the reduction of the GC stats, i then proceeded to use a powerful machine so i won't be fill-rate limited when i tested for FPS/ms, the GC numbers you will see are from a Linux machine running under similar test conditions, while the FPS/ms log was gathered from my Windows machine, this is because i couldn't bother patching FG on a Windows machine for Torsten B's GC stats patch.
Here goes.
fgfsrc:
- Code: Select all
--enable-fullscreen
--aircraft=ogel
--airport=oejn
--timeofday=noon
--runway=34L
--disable-hud-3d
--disable-fgcom
--disable-sound
--disable-clouds
--disable-clouds3d
--visibility=5000
--prop:/sim/rendering/draw-mask/aircraft=0
--prop:/sim/rendering/draw-mask/clouds=0
--prop:/sim/rendering/draw-mask/models=0
--prop:/sim/rendering/random-vegetation=0
--prop:/sim/rendering/random-buildings=0
--prop:/sim/rendering/random-objects=0
--prop:/sim/menubar/visibility=false
--prop:/sim/ai-traffic/enabled=false
--prop:/sim/rendering/quality-level=0
--prop:/sim/rendering/shaders/quality-level=0
--prop:/sim/sceneryloaded-override=1
--prop:/sim/rendering/draw-mask/terrain=0
--config=C:\Users\Hamza\Documents\FlightGear\mylog1.txt
log xml placed in $FG_HOME:
- Code: Select all
<PropertyList>
<logging>
<log n="0">
<enabled type="bool">true</enabled>
<interval-ms type="long">50</interval-ms>
<filename>fg_log.txt</filename>
<delimiter> </delimiter>
<entry n="0">
<enabled type="bool">true</enabled>
<title>frameSpacing</title>
<property>/sim/frame-latency-max-ms</property>
</entry>
<entry n="1">
<enabled type="bool">true</enabled>
<title>actualFPS</title>
<property>/sim/frame-rate</property>
</entry>
</log>
</logging>
</PropertyList>
now comes the fun part:
Nasal GC stats after initialization with all .nas modules:
**** Nasal garbage collection statistics: objects: 19164, references: 71059
Nasal GC stats after initialization with minimal .nas modules to keep FG running:
**** Nasal garbage collection statistics: objects: 3389, references: 7700
here is FPS and latency in ms, taken on a similar time range:
Full Nasal:
- Code: Select all
Time frameSpacing actualFPS
26.8167 16 1711
26.8583 16 1711
26.9083 16 1711
26.9667 16 1711
27.0167 16 1711
27.0667 16 1711
27.1083 16 1711
27.1583 16 1711
27.2167 16 1711
27.2667 16 1711
27.3167 16 1711
27.3583 16 1711
27.4083 16 1711
27.4667 16 1711
27.5167 16 1711
27.5667 16 1711
27.6083 16 1711
27.6583 16 1711
27.7167 16 1711
27.7667 16 1712
Minimal Nasal:
- Code: Select all
Time frameSpacing actualFPS
26.8083 16 2120
26.8583 16 2120
26.9083 16 2120
26.9667 16 2120
27.0167 16 2120
27.0583 16 2120
27.1083 16 2120
27.1583 16 2120
27.2167 16 2120
27.2667 16 2120
27.3083 16 2120
27.3583 16 2120
27.4083 16 2120
27.4667 16 2120
27.5167 16 2120
27.5583 16 2120
27.6083 16 2120
27.6583 16 2120
27.7167 16 2120
27.7667 16 2120
27.8083 16 2094
Conclusion: on an uncapped machine, Nasal robs me 408 FPS, that's just run-time Nasal that starts with FlightGear, we are still not talking about Canvas implementations(remember this is the ogeL aircraft).
P.S: I could get as less as 5ms on my Linux machine, so the 16ms is a Windows thing, probably caused by the compositor not acting well with an OpenGL application.