The new beta has a feature to speed execution of systems with long
search paths. It should be generally applicable and I hope you will
turn it on in your scripts to wring it out.
The implementation has heretofore followed the Dictionary's model of
parsing and execution, which for named verbs is:
1. name is looked up to get its part of speech
2. (if name is a verb or undefined) a reference to the verb is allocated
and put onto the execution stack
3. when the reference is executed, the name is looked up again to get
its value
That's a minimum of 2 lookups per named verb. If the verb is executed
more than once (as in name"n) it is looked up every time it is executed.
Lookups are pretty quick, but each requires going through the locales in
the search path, and the time can add up to something noticeable.
Nameref Caching
(https://code.jsoftware.com/wiki/Vocabulary/Locales#namerefcaching)
remembers the results of each non-noun lookup in step 1 and step 3, and
reuses the result in most cases (it also remembers the lookups across
multiple executions of the same explicit entity). A typical script,
which observes a clear separation between code and data and where each
verb reference always executes the same verb, can use Nameref Caching
without modification.
Please give it a try.
Henry Rich
--
This email has been checked for viruses by AVG.
https://www.avg.com
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm