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
_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to