Gour, thanks for doing performance testing. Here's some more, I hope others will do the same.

I got today's ledger HEAD building (ledger maintainers: ubuntu boost libs no longer have the -mt suffix, which seems to be expected by ledger build scripts). I tried to make sure to build an optimised ledger, since it's easy to build a debug one by accident. I did:

$ git pull
$ ./acprep clean
$ ./acprep opt
acprep: INFO: Invoking primary phase: config
acprep: INFO: Executing phase: config
acprep: INFO: Executing phase: submodule
acprep: INFO: Executing phase: configure
acprep: INFO: System type is => Linux
acprep: INFO: Setting up build flavor => opt
$ make
$ sudo make install
$ ls -l `which ledger`
-rwxr-xr-x 1 root root 5689332 Sep 13 13:31 /usr/local/bin/ledger
$ ledger --version
Ledger 3.0.3-20140608, the command-line accounting tool
...

For hledger, I did:

$ git pull
$ cabal install ./hledger-*
$ ls -l `which hledger`
-rwxr-xr-x 1 simon simon 14808496 Sep 12 18:45 /home/simon/src/hledger/.cabal-sandbox/bin/hledger
$ hledger --version
hledger 0.23.98

I used hledger's sample journals, which you can make in a hledger source tree with "make samplejournals" or download from http://hledger.org/profs . These are just one particular synthetic data set. They are named according to the number of transactions, accounts, and the account depth, so eg 10000x1000x10.journal has ten thousand transactions posting to a thousand unique accounts, with the maximum account depth being ten.

I ran tests on my linode 4G VPS running ubuntu saucy. This is an active server, but I usually see no significant impact from server activities on this kind of benchmark. I used tools/simplebench in the hledger source tree, which runs each test at least twice and takes the quickest result ("make bench").

I tested these commands: http://hledger.org/profs/bench-20140912.tests

and got these results: http://hledger.org/profs/201409131354.bench

See the summary at the bottom, or hopefully unmangled here:

+--------------------------------------------++---------+--------+
|                                            || hledger | ledger |
+============================================++=========+========+
| -f data/100x100x10.journal     balance     ||    0.05 |   0.07 |
| -f data/1000x1000x10.journal   balance     ||    0.40 |   0.55 |
| -f data/1000x10000x10.journal  balance     ||    0.56 |   0.87 |
| -f data/10000x1000x10.journal  balance     ||    2.95 |   2.27 |
| -f data/10000x1000x10.journal  balance aa  ||    2.91 |   2.17 |
| -f data/10000x1000x10.journal  balance -M  ||   21.59 |    N/A |
| -f data/100000x1000x10.journal balance     ||   28.69 |  19.35 |
| -f data/100x100x10.journal     register    ||    0.07 |   0.42 |
| -f data/1000x1000x10.journal   register    ||    0.58 |   4.04 |
| -f data/1000x10000x10.journal  register    ||    0.57 |   4.09 |
| -f data/10000x1000x10.journal  register    ||    5.92 |  40.13 |
| -f data/10000x1000x10.journal  register aa ||    2.92 |   2.91 |
| -f data/10000x1000x10.journal  register -M ||    8.33 |  40.51 |
| -f data/100000x1000x10.journal register    ||   58.36 | 402.44 |
| -f data/100x100x10.journal     print       ||    0.06 |   0.05 |
| -f data/1000x1000x10.journal   print       ||    0.44 |   0.37 |
| -f data/1000x10000x10.journal  print       ||    0.45 |   0.39 |
| -f data/10000x1000x10.journal  print       ||    4.58 |   3.32 |
| -f data/10000x1000x10.journal  print aa    ||    2.99 |   2.20 |
| -f data/100000x1000x10.journal print       ||   45.72 |  32.40 |
+--------------------------------------------++---------+--------+

So these are the numbers I get here today on a medium-fast linux VPS. They're not quite what I expected. Quick comments:

- something has gone wrong with ledger register, it's abnormally slow

- in the past I've seen ledger balance command looking much faster as the size of data increases (not so much with register/print). Not seeing that today for some reason. Maybe I need larger files ?

- on small files, hledger balance is slightly quicker. This is as before; I think GHC executables have a nice low startup overhead.

- I still might be running a ledger debug build, despite everything. Is there a way to make sure by asking the executable ?

Best!
- Simon

--

--- You received this message because you are subscribed to the Google Groups "Ledger" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to