More report speedups

Robert Graham Merkel rgmerk@mira.net (Robert Graham Merkel)
Thu, 1 Mar 2001 21:07:41 +1100


Ok, the speed of the transaction report is now gone from "ridiculously
slow", to "acceptable, but still a little bit tardy" on big reports. 

I think there's a reasonable amount of tweaking still possible, though
- for instance, record structures may have a nice UI, but they're
slow.  Replacing the rest of the record lookups in the inner loop with
vector ones would probably ratchet up the speed a little more :)

begin 644 gnucash-20010301-210142-rgmerk.diff.gz
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
!````
`
end

------------------------------------------------------------
Robert Merkel	                           rgmerk@mira.net

<telsa> I left my client on #gtk+ overnight and there was nothing 
in scrollback at all except quit/rejoins.
<bighead> telsa: well its been that for, I think 3 days now 
(ever since started coming back on IRC)
<telsa> Clearly they are busy implementing telepathy, 
and dog-fooding it. :) 
------------------------------------------------------------