Guile 2 performance
Geert Janssens
janssens-geert at telenet.be
Tue Nov 26 13:59:24 EST 2013
The people at the guile irc channel asked me for some performance tests in gnucash comparing
gnucash/guile1.8 vs gnucash/guile2.0.
I thought our GnuCash devs could be interested as well, so here goes:
I have conducted two tests:
1. run make check 20 times in the src/report/standard-reports directory. I have chosen that
directory because the tests are fairly heavy and almost purely in scheme. So the time to run the
tests is a good indicator of the relative performance of the two guile versions.
2. start gnucash --nofile a couple of times in a row and time how long it takes to display the
main window. This is not a very accurate test - I looked at the wall clock to measure this. But
startup time is something users are sensitive to, so it would be interesting to check for
improvements.
Note that guile 2 now compiles its source files. This happens automatically whenever a file is
newer than the last compiled version. For an installed gnucash, this should happen only once
(at first startup) and hence is not representative of the user's experience. So for the
gnucash/guile 2 test, I have first run make check and started the application once before doing
my performance tests. As such, (one time) compile times are not part of the test results.
The results:
20x standard-reports tests:
- guile 1.8: real: 3m59s user: 2m40s sys: 0m9s
- guile 2.0: real: 2m48s user: 1m45s sys: 0m11s
Startup time (wall clock time to show main window, test run 3 times at least)
Average time is given:
- guile 1.8: 13s (consistently)
- guile 2.0: 9s (consistently)
That means that guile 2 improves the test performance with about 30% compared with guile
1.8 and reduces the startup time with about 30% as well.
That's a nice improvement we get for free without even optimizing our own code IMO :)
Geert
More information about the gnucash-devel
mailing list