Skip to content

1.26-: performance: current hledger is ~50% slower than 1.25 #2122

@simonmichael

Description

@simonmichael

This issue is discussing moderate drops in general performance seen in hledger 1.26 and later releases like hledger 1.32.3.
(There was also a more serious performance regression affecting 1.29-1.32.2 with many accounts, see #2153.
The issue for comparing hledger vs Ledger performance is #2363.)


I tend to see this (register much faster, but print and balance a bit slower) in recent releases:

$ make bench BENCHEXES=hledger-1.25,hledger-1.26,hledger-1.31,hledger-1.32 

run quick performance benchmarks in bench.sh (approximate, can be skewed):
Running 5 tests 1 times with 4 executables at 2023-12-02 10:11:59 HST:

Best times:
+----------------------------------------------------++--------------+--------------+--------------+--------------+
|                                                    || hledger-1.25 | hledger-1.26 | hledger-1.31 | hledger-1.32 |
+====================================================++==============+==============+==============+==============+
| -f examples/10000x1000x10.journal print            ||         0.62 |         0.69 |         0.81 |         0.77 |
| -f examples/10000x1000x10.journal register         ||         9.37 |         3.21 |         3.44 |         2.74 |
| -f examples/10000x1000x10.journal balance          ||         0.47 |         0.50 |         0.73 |         0.74 |
| -f examples/1000x1000x10.journal balance --weekly  ||         0.66 |         0.76 |         1.02 |         0.81 |
| -f examples/10000x1000x10.journal balance --weekly ||         9.31 |         9.04 |        10.34 |         9.63 |
+----------------------------------------------------++--------------+--------------+--------------+--------------+

More notably, right now on this machine I can see ~25k TPS with hledger 1.25 stats, but only ~15k TPS with 1.32. A new round of profiling could be in order.

Related:

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-BUGSomething wrong, confusing or sub-standard in the software, docs, or user experience.affects3-fewAffects just a few users.annoyance2-minorMinor to moderate usability/doc bug, reasonably easy to avoid or tolerate.performanceAnything performance-related (run time, memory usage, disk space..)

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions