* Durk Talsma -- Sunday 30 September 2007: > Secondly, there are a selected number of processes that take > disproportionally long to execute. The most significant one I > found sofar is a call in src/Input/input.cxx (around line 911). > I have surrounded this statement by debug timestamp information: > > stamp("update_joystick_fire_prep "); > a.bindings[modifiers][k]->fire(axis_values[j]); > stamp("update_joystick_fire_end");
Although the Nasal code in <binding>s is mostly simple and rather quick to parse, it should be noted that this is done again for every single fire() call. And in some joystick drivers there's some more sophisticated code, which could explain your results. If you look around with a digital hat and operate the throttle, there are oodles of Nasal recipes read in, parsed, and executed. The good news: I have a Nasal binding/script cache almost finished. I don't know yet if it makes a huge difference, but I guess it's desirable in any case. After all, there's a tendency to use more Nasal everywhere (which is a good thing!), and it's asked too much of users to know where Nasal code is cheap and where not. The Nasal cache re-parses the script when it was changed in the property tree, so we don't lose any flexibility. m. ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Flightgear-devel mailing list Flightgear-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/flightgear-devel