<div dir="ltr">I think it's safe to not reinvent the wheel here.  Some searching gives:<div><a href="http://perso.ensta-paristech.fr/~bmonsuez/Cours/B6-4/Articles/papers15.pdf">http://perso.ensta-paristech.fr/~bmonsuez/Cours/B6-4/Articles/papers15.pdf</a></div><div><a href="http://www.cs.utexas.edu/users/mckinley/papers/dcm-vee-2006.pdf">http://www.cs.utexas.edu/users/mckinley/papers/dcm-vee-2006.pdf</a><br></div><div><a href="https://github.com/facebook/hhvm/tree/master/hphp/tools/hfsort">https://github.com/facebook/hhvm/tree/master/hphp/tools/hfsort</a><br></div><div><br></div><div>Pyston takes a different approach where we pull the list of hot functions from the PGO build, ie defer all the hard work to the C compiler.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Nov 19, 2016 at 12:29 PM, serge guelton <span dir="ltr"><<a href="mailto:sguelton@quarkslab.com" target="_blank">sguelton@quarkslab.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Sat, Nov 19, 2016 at 02:32:26AM +0100, Victor Stinner wrote:<br>
> Hi,<br>
><br>
> I'm happy because I just finished an article putting the most<br>
> important things that I learnt this year on the most silly issue with<br>
> Python performance: code placement.<br>
><br>
> <a href="https://haypo.github.io/analysis-python-performance-issue.html" rel="noreferrer" target="_blank">https://haypo.github.io/<wbr>analysis-python-performance-<wbr>issue.html</a><br>
><br>
> I explain how to debug such issue and my attempt to fix it in CPython.<br>
><br>
> I hate code placement issues :-) I hate performance slowdowns caused<br>
> by random unrelated changes...<br>
><br>
> Victor<br>
<br>
</span>Thanks *a lot* victor for this great article. You not only very<br>
accurately describe the method you used to track the performance bug,<br>
but also give very convincing results.<br>
<br>
I still wonder what the conclusion should be:<br>
<br>
- (this) Micro benchmarks are not relevant at all, they are sensible to minor<br>
  factors that are not relevant to bigger applications<br>
<br>
- There is a generally good code layout that favors most applications?<br>
  Maybe some core function from the interpreter ? Why does PGO fails to<br>
  ``find'' them?<br>
<span class="HOEnZb"><font color="#888888"><br>
Serge<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
______________________________<wbr>_________________<br>
Speed mailing list<br>
<a href="mailto:Speed@python.org">Speed@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/speed" rel="noreferrer" target="_blank">https://mail.python.org/<wbr>mailman/listinfo/speed</a><br>
</div></div></blockquote></div><br></div>