Running Waf on different Python interpreters
A few of you may be curious to know how well Waf performs on different python interpreters. Different propjects may have different requirements, so the tests are always biased in one way or another. Among all the tests considered so far, the genbench script provides a good balance between project size, process execution, regexps and parsing. The numbers collected represent the best run in in five executions:
./genbench.py /tmp/build 50 100 15 5
cd /tmp/build
waf clean; time waf build -p -j3
On Windows XP, the IronPython runtime is fairly close to the Pypy one. And Pypy 1.5 did not complete normally (file descriptor leak).
cPython 2.7 | IronPython 2.7 | Pypy 1.5 |
---|---|---|
1m54 | 2m14 | 2m05 |
IronPython requires .NET 4, and it would not run on Linux using Mono 2.10.2. It is no surprize that the test completes faster as spawning new processes (fork) is slower on Windows. Pypy 1.5 could not even complete normally once in about 10 runs.
python 2.6.5 | python 3.2 | jython 2.5.2 |
---|---|---|
1m41 | 1m41 | 5m30 |
For the moment, the best interpreter remains cPython for both portability and performance.