I've run into problems with addons that use debugprofilestop() on OSX, including Auctioneer. I'm a little puzzled by what I see.
On the windows client, debugprofilestop() returns milliseconds. It looks like on OSX it returns floating point seconds, exactly like GetTime() does.
I've had some success and improvements in cpu-intensive programs buy fixing the 'factor of 1000'. eg: in CoreScan.lua I've tried things like: if IsMacClient() then processingTime = processingTime / 1000.0 end
Other addons have foolishly done things like "function local_GetTime() return debugprofilestop() / 1000 end" - making the /1000 be conditional on not IsMacClient() tends to improve things considerably.
I can see that a debugprofilestart() will reset the counter back to zero. But what I don't know is whether debugprofilestop() is cached on OSX across a frame update just like GetTime() is.
I'm asking here because there's some hints in the issue tracker that there's out-of-band discussions going on somewhere that I haven't found yet. I was wondering what the state of thinking on the subject was, and whether this sort of change is appropriate to slip into Auctioneer as well?