<div dir="ltr"><br><br><div class="gmail_quote">On Fri, Mar 6, 2015 at 1:03 PM Mark Shannon <<a href="mailto:mark@hotpy.org">mark@hotpy.org</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
On 06/03/15 16:34, Brett Cannon wrote:<br>
> Over on the import-sig I proposed eliminating the concept of .pyo files<br>
> since they only signify that /some/ optimization took place, not<br>
> /what/ optimizations took place. Everyone on the SIG was positive with<br>
> the idea so I wrote a PEP, got positive feedback from the SIG again, and<br>
> so now I present to you PEP 488 for discussion.<br>
><br>
[snip]<br>
<br>
Historically -O and -OO have been the antithesis of optimisation, they<br>
change the behaviour of the program with no noticeable effect on<br>
performance.<br>
If a change is to be made, why not just drop .pyo files and be done with it?<br></blockquote><div><br></div><div>I disagree with your premise that .pyo files don't have a noticeable effect on performance. If you don't use asserts a lot then there is no effect, but if you use them heavily or have them perform expensive calculations then there is an impact. And the dropping of docstrings does have an impact on memory usage when you use Python at scale.</div><div><br></div><div>You're also assuming that we will never develop an AST optimizer that will go beyond what the peepholer can do based on raw bytecode, or something that involves a bit of calculation and thus something you wouldn't want to do at startup.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Any worthwhile optimisation needs to be done at runtime or involve much<br>
more than tweaking bytecode.<br></blockquote><div><span style="font-size:13.1999998092651px"><br></span></div><div><span style="font-size:13.1999998092651px">I disagree again. If you do something like whole program analysis and want to use that to optimize something, you will surface that through bytecode and not editing the source. So while you are doing "much more than tweaking bytecode" externally to Python, you still have to surface to the interpreter through bytecode.</span><br></div></div></div>