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.