hledger/Ledger
Simon Michael b51740e9bb optimise canonicaliseAmounts
First optimisation in a while. hledger -s bal on my ledger took 2s, and profiling showed:

	total time  =        0.66 secs   (33 ticks @ 20 ms)
	total alloc = 3,631,667,848 bytes  (excludes profiling overheads)

     canonicaliseAmounts                             1   0.0    0.8      69.7       92.4
      rawLedgerCommoditiesWithSymbol              3928  27.3   23.1      69.7       91.6
       rawLedgerCommodities                          0  18.2   18.7      42.4       68.5
        amounts                                7712628   3.0    0.0       3.0        0.0
        rawLedgerAmounts                             0   0.0    9.3      21.2       49.9
         rawLedgerTransactions                       0   9.1   19.5      21.2       40.5
          flattenEntry                         3408636  12.1   21.0      12.1       21.0

Now it takes 1/2s and the profile is healthier:

	total time  =        0.14 secs   (7 ticks @ 20 ms)
	total alloc = 275,520,536 bytes  (excludes profiling overheads)

     canonicaliseAmounts                             1   0.0    0.4       0.0        0.5
      amounts                                     1964   0.0    0.0       0.0        0.0
      rawLedgerTransactions                          0   0.0    0.1       0.0        0.1
       flattenEntry                                868   0.0    0.1       0.0        0.1
2008-12-05 02:09:19 +00:00
..
Account.hs nullamt and nullmixedamt 2008-11-22 17:21:49 +00:00
AccountName.hs --options-anywhere to use ^ for negative patterns and permit options anywhere in command-line 2008-11-25 19:29:33 +00:00
Amount.hs work towards a fix for zero-balance root account eliding 2009-01-17 18:07:20 +00:00
Commodity.hs commodity cleanup 2008-10-18 19:30:07 +00:00
Dates.hs smart dates: also accept yyyymmdd with no separators 2009-01-17 20:07:24 +00:00
Entry.hs fix reporting of unbalanced entries 2008-12-05 10:04:59 +00:00
Ledger.hs a cached ledger now includes the full ledger text, also. 2008-12-10 07:29:08 +00:00
Parse.hs Fixed TimeLog handling and certain blank lines 2008-12-08 03:45:35 +00:00
RawLedger.hs optimise canonicaliseAmounts 2008-12-05 02:09:19 +00:00
RawTransaction.hs show mixed amounts vertically 2008-11-22 09:07:04 +00:00
TimeLog.hs Fixed TimeLog handling and certain blank lines 2008-12-08 03:45:35 +00:00
Transaction.hs gather date stuff together, FuzzyDate -> SmartDate 2008-11-27 00:35:00 +00:00
Types.hs a cached ledger now includes the full ledger text, also. 2008-12-10 07:29:08 +00:00
Utils.hs Abstract over all GenParser state types 2008-12-08 01:11:07 +00:00