My needs are:
- simple way to instrument my code to log time for a function or a code block (I am not writing a specific script to time/benchmark a specific code)
- have the timing sent to some logger
- be the less intrusive possible
With the Timer proposed here above (bad naming as Timer already exists in the timeit module, maybe Clocker ?), I can simply:
- decorate a function with it and I am done
- wrap an existing code with it as context manager
timeit is indeed pretty awkward. Personally, I use iPython's @timeit for quick an dirty timing of a single function, or a few lines of code.
But I'm not sure a context manager or decorator is needed, either. They are not hard to write. IN fact, I've seen both used as examples in tutorials, etc, including some of my own :-)
(those are very simple, more robust versions would be good)
I'd be very surprised if there wasn't something on PyPi as well. -- have you looked?
I think one reason this hasn't been made more standard is that for inline timing, it's not clear how the results should be stored / presented -- everyone will want to do that their own way (or do a proper profile).
But if you do figure out exactly what you want, and can't find it on PyPi, you can write it, and then put it on PyPi, and/or propose it be added to the std lib.