[plt-scheme] Performance Targets for MzScheme
--- Matthias Felleisen <matthias at ccs.neu.edu> wrote:
> For list-related administrative tasks:
>
> [matthias-ti:~/Desktop] matthias% mzscheme -r
> test-gen.ss
> [matthias-ti:~/Desktop] matthias% time ./testfile.py
> 1.380u 0.090s 0:01.51 97.3% 0+0k 0+1io 0pf+0w
>
[ ... snip ...]
> [matthias-ti:~/Desktop] matthias% time mzscheme -r
> testfile.ss
> 1.820u 0.160s 0:02.04 97.0% 0+0k 0+0io 0pf+0w
>
> Okay, we lose by either 4.5 or .4 depending on how
> you count. That is
> slower but not an order of magnitude.
Excellent !
It looks as though the culprit is string-tokenize. I
also tried a regular-expression-based version and
found it to be about an order of magnitude faster.
For comparison:
tokenize regular-expr
Perl 2.5721 2.3654
Python 1.8225 1.7576
PLT Scheme 40.5884 3.6522
This is with the naive do-ec implementation of the
loop, not processing directly to the port (so there is
room for improvement). The second set of numbers is
much better.
-Brent