Development work on the new J engine has mostly been focused on fixing bugs (& learning the source code), but the first two changes to be released were for performance improvements.

First was a complete rewrite of the parser; next was a change to numerous switch statements to take advantage of the count-trailing-zeros instructions in modern CPUs. Together, these changes improved throughput by almost 11% on our testcase, which consists of running lint on the source of lint (average of 50 runs). Each run took 1.91 seconds originally, 1.72 seconds with the rewrites.

Considering that lint is not a mostly-scalar task that spends a lot of time parsing short sentences, an 11% improvement is respectable. It would be interesting to see what difference the new code makes for other applications.

We would like a benchmark that uses scalar code heavily. This is the kind of application that you might say is 'not good for J'. We'd like to make J better on those applications. If you have some old FORTRAN-style code written in J, we'd like to see it.


To get the new Jengine see http://www.jsoftware.com/download/jengine/

Henry Rich
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to