* 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

Reply via email to