[Ecls-list] Further speed improvements
Juan Jose Garcia-Ripoll
juanjose.garciaripoll at googlemail.com
Thu Feb 26 09:49:01 UTC 2009
Thanks to simplifications and inlining key functions, calling
interpreted functions is now a bit faster without any missing
functionality. Part of the improvement arises from new bytecodes for
dealing with function arguments, which simplifies the code and speeds
up argument parsing -- no need to check for keyword, optionals, rest,
etc, if not needed. As a side effect, the decrease in code size and in
the number of stack allocated variables seems to help the garbage
collector as well, as evidenced by the numbers in the ANSI test suite.
new_cfun branch
CALL-SYMBOL COMPILED-FUNCTION real: 169ms run: 181ms
CALL-SYMBOL GENERIC-FUNCTION real: 2165ms run: 2230ms
CALL-SYMBOL INTERPRETED-FUNCTION real: 2495ms run: 2600ms
CALL-FUNCTION COMPILED-FUNCTION real: 100ms run: 105ms
CALL-FUNCTION GENERIC-FUNCTION real: 2061ms run: 2129ms
CALL-FUNCTION INTERPRETED-FUNCTION real: 2419ms run: 2519ms
master branch
CALL-SYMBOL COMPILED-FUNCTION real: 189ms run: 194ms
CALL-SYMBOL GENERIC-FUNCTION real: 2425ms run: 2507ms
CALL-SYMBOL INTERPRETED-FUNCTION real: 3026ms run: 3135ms
CALL-FUNCTION COMPILED-FUNCTION real: 163ms run: 168ms
CALL-FUNCTION GENERIC-FUNCTION real: 2328ms run: 2476ms
CALL-FUNCTION INTERPRETED-FUNCTION real: 2884ms run: 2997ms
Juanjo
--
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28009 (Spain)
http://juanjose.garciaripoll.googlepages.com
More information about the ecl-devel
mailing list