
Indeed, though I don't think this is the case, because I get lots of lag even when no logs are written.
In the part you deleted I mentioned one source of lag that does not disappear when no logs are written, and a way of using profiling cost centers to track down other sources (the ones I mentioned accounted for 2/3 of lag in the "profile_logging" profile, according to "-hblag -hc -L40" on SCC-annotated source).
You mean !s on the intermediate numbers? I could have sworn I tried that but no luck. Thanks for reminding me about manual SCC pragmas, somehow I totally forgot you could add your own. Just out of curiosity, what affect could "return $! 1" have? A constant should never be a thunk, so 'seq' on it should have no effect, right?
I should go back to poking at the production version. Even if I don't understand the changes I'm making, at least when I get a speedup I'm more sure it translates to a real speed up in the application.
That way lies madness. Not recommended unless you are producing code that noone is ever going to look at again, and even then you'll be writing similar code in the future, so it is better to put in the energy once to puzzle out those mysterious details!-)
Yes, you are right of course, and thank you for the help. It's just frustrating when every step toward simpler instead brings new problems out of the woodwork... but I suppose with enough experience I can begin to understand those too. I will resume my testing when I get some time again!