Skip to content

Commit b106e7a

Browse files
committed
docs: show off performance
1 parent 82e2e1e commit b106e7a

File tree

2 files changed

+75
-2
lines changed

2 files changed

+75
-2
lines changed

README.md

Lines changed: 45 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,53 @@
1313
## Purpose
1414

1515
Ledger is a command line application for plain text accounting. Providing
16-
commands to view balances, register of transactions, importing of CSV files, exporting of CSV files,
17-
and a web interface to view reports, and track investments.
16+
commands to view balances, register of transactions, importing of CSV files,
17+
exporting of CSV files, and a web interface to view reports, and track
18+
investments. The transaction file format is heavily inspired by
19+
[ledger-cli](https://ledger-cli.org), with a focus on simplicity and
20+
performance.
1821

1922
## Documentation
2023

2124
Head over to https://howeyc.github.io/ledger/
2225

26+
## Performance
27+
28+
Comparison between various ledger-like applications:
29+
30+
- ledger-go
31+
- [ledger-cli](https://ledger-cli.org)
32+
- [hledger](https://hledger.org)
33+
34+
### Stats
35+
36+
| Command | Mean | Min | Max | Relative |
37+
|:---|---:|---:|---:|---:|
38+
| `ledger-go stats` | 14.2ms ± 500µs | 13.1ms | 17.2ms | 1.00 |
39+
| `ledger-cli stats` | 165.5ms ± 1.3ms | 163.3ms | 169.6ms | 11.58 ± 0.49 |
40+
| `hledger-cli stats` | 1.3275s ± 10.9ms | 1.3051s | 1.3458s | 92.90 ± 3.92 |
41+
42+
### Balance
43+
44+
| Command | Mean | Min | Max | Relative |
45+
|:---|---:|---:|---:|---:|
46+
| `ledger-go bal` | 23.9ms ± 700µs | 22.9ms | 28.1ms | 1.00 |
47+
| `ledger-cli bal` | 139.5ms ± 1.3ms | 137.5ms | 144.3ms | 5.83 ± 0.18 |
48+
| `hledger-cli bal` | 1.333s ± 8.8ms | 1.3252s | 1.3559s | 55.66 ± 1.71 |
49+
50+
### Register
51+
52+
| Command | Mean | Min | Max | Relative |
53+
|:---|---:|---:|---:|---:|
54+
| `ledger-go reg` | 52ms ± 1.1ms | 50.5ms | 57.7ms | 1.00 |
55+
| `ledger-cli reg` | 1.7474s ± 20.8ms | 1.7138s | 1.7829s | 33.60 ± 0.84 |
56+
| `hledger-cli reg` | 1.9381s ± 8.8ms | 1.926s | 1.9564s | 37.26 ± 0.84 |
57+
58+
### Print
59+
60+
| Command | Mean | Min | Max | Relative |
61+
|:---|---:|---:|---:|---:|
62+
| `ledger-go print` | 40.9ms ± 800µs | 39.2ms | 44.2ms | 1.00 |
63+
| `ledger-cli print` | 239.1ms ± 2.8ms | 235.2ms | 246.5ms | 5.83 ± 0.14 |
64+
| `hledger-cli print` | 1.5487s ± 10ms | 1.5254s | 1.556s | 37.78 ± 0.83 |
65+

ledger/genperf.bash

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,33 @@ cbench --export-markdown perf-bal.md "ledger bal" "./ledger bal" "hledger bal"
55
cbench --export-markdown perf-reg.md "ledger reg" "./ledger reg" "hledger reg"
66
cbench --export-markdown perf-print.md "ledger print" "./ledger print" "hledger print"
77

8+
echo "## Performance" > perf.md
9+
echo "" >> perf.md
10+
echo "Comparison between various ledger-like applications:" >> perf.md
11+
echo "" >> perf.md
12+
echo "- ledger-go" >> perf.md
13+
echo "- [ledger-cli](https://ledger-cli.org)" >> perf.md
14+
echo "- [hledger](https://hledger.org)" >> perf.md
15+
echo "" >> perf.md
16+
17+
echo "### Stats" >> perf.md
18+
echo "" >> perf.md
19+
cat perf-stats.md | sed -e 's/\.\/ledger/ledger-go/g' | sed -e 's/ledger /ledger-cli /g' >> perf.md
20+
echo "" >> perf.md
21+
22+
echo "### Balance" >> perf.md
23+
echo "" >> perf.md
24+
cat perf-bal.md | sed -e 's/\.\/ledger/ledger-go/g' | sed -e 's/ledger /ledger-cli /g' >> perf.md
25+
echo "" >> perf.md
26+
27+
echo "### Register" >> perf.md
28+
echo "" >> perf.md
29+
cat perf-reg.md | sed -e 's/\.\/ledger/ledger-go/g' | sed -e 's/ledger /ledger-cli /g' >> perf.md
30+
echo "" >> perf.md
31+
32+
echo "### Print" >> perf.md
33+
echo "" >> perf.md
34+
cat perf-print.md | sed -e 's/\.\/ledger/ledger-go/g' | sed -e 's/ledger /ledger-cli /g' >> perf.md
35+
echo "" >> perf.md
36+
37+
rm perf-stats.md perf-bal.md perf-reg.md perf-print.md

0 commit comments

Comments
 (0)