On Sun, Nov 17, 2013 at 11:00:50AM +0100, Antoine Pitrou wrote:
On Sun, 17 Nov 2013 18:04:43 +1100 Steven D'Aprano <steve@pearwood.info> wrote:
On Sat, Nov 16, 2013 at 04:46:00PM +0100, Antoine Pitrou wrote:
I agree that conflating the two doesn't help the discussion. While removing docstrings may be beneficial on memory-constrained devices, I can't remember a single situation where I've wanted to remove asserts on a production system.
(I also tend to write less and less asserts in production code, since all of them tend to go in unit tests instead, with the help of e.g. mock objects)
I'm the opposite. I like using asserts in my code, and while I don't *typically* run it with -O, I do think it is valuable to have to opportunity to remove asserts. I've certainly written code where -O has given a major micro-optimization of individual functions (anything up to 50% speedup). I've never measured if that lead to a significant whole-application speedup, but I assume that was some benefit. (I know, premature optimization and all that...)
So you assumed there was some benefit, but you never used it anyway?
I had a demonstrable non-trivial speedup when timing individual functions. At the time I considered that "good enough". If you want to call that "premature optimization", I can't entirely disagree, but can you honestly say you've never done the same? Optimize a function to make it run faster, even if you have no proof that it was a bottleneck in the your application? -- Steven