Skip to content

Conversation

kmod
Copy link
Collaborator

@kmod kmod commented Jun 2, 2015

I think this lets us specify that certain functions should be
put together at the end of the text segment.

I picked some random functions that were showing up in the perf report
and listed those. I think there's a lot we can do here for improving
performance, but my main goal for now is to improve performance consistency.

              pyston django_migrate.py                  :    2.1s tp_hash: 2.2 (-1.1%)
              pyston virtualenv_bench.py                :    5.7s tp_hash: 5.8 (-1.1%)
              pyston django-template.py                 :   10.9s tp_hash: 11.4 (-3.8%)
              pyston interp2.py                         :    5.4s tp_hash: 5.5 (-1.7%)
              pyston raytrace.py                        :    6.5s tp_hash: 6.4 (+1.0%)
              pyston nbody.py                           :    8.4s tp_hash: 8.4 (+0.9%)
              pyston fannkuch.py                        :    7.3s tp_hash: 7.5 (-3.0%)
              pyston chaos.py                           :   20.5s tp_hash: 19.9 (+2.9%)
              pyston fasta.py                           :    5.4s tp_hash: 5.5 (-1.4%)
              pyston pidigits.py                        :    5.7s tp_hash: 5.7 (-0.9%)
              pyston richards.py                        :    2.4s tp_hash: 2.5 (-1.4%)
              pyston deltablue.py                       :    1.8s tp_hash: 1.8 (-1.5%)
              pyston (geomean-1a6f)                     :    5.5s tp_hash: 5.6 (-1.7%)

@kmod kmod force-pushed the linkorder branch 2 times, most recently from 6d36c5c to c41538d Compare June 2, 2015 07:06
I think this lets us specify that certain functions should be
put together at the end of the text segment.

This is inspired by a similar feature of HHVM's build, though the goal
for us for now is just to improve performance consistency rather
than overall performance.  Hopefully soon/eventually we can do
profile-guided sorting like they do.
@kmod kmod force-pushed the linkorder branch 2 times, most recently from b7b3b29 to d8e5b7f Compare June 2, 2015 09:49
@kmod
Copy link
Collaborator Author

kmod commented Jun 2, 2015

Ok I tried to be more careful with the building and measurement, and this is what I got:

              pyston django_migrate.py                  :    2.1s baseline: 2.2 (-2.3%)
              pyston virtualenv_bench.py                :    5.7s baseline: 5.7 (-1.3%)
              pyston django-template.py                 :   10.8s baseline: 11.1 (-2.4%)
              pyston interp2.py                         :    5.4s baseline: 5.4 (-0.7%)
              pyston raytrace.py                        :    6.4s baseline: 6.2 (+3.1%)
              pyston nbody.py                           :    8.4s baseline: 8.4 (+0.4%)
              pyston fannkuch.py                        :    7.2s baseline: 7.7 (-6.0%)
              pyston chaos.py                           :   20.2s baseline: 20.1 (+0.5%)
              pyston fasta.py                           :    5.4s baseline: 5.5 (-1.5%)
              pyston pidigits.py                        :    5.6s baseline: 5.7 (-1.3%)
              pyston richards.py                        :    2.5s baseline: 2.5 (-1.0%)
              pyston deltablue.py                       :    1.8s baseline: 1.8 (-1.2%)
              pyston (geomean-1a6f)                     :    5.5s baseline: 5.6 (-1.2%)

I messed with the ordering some more and got some different results.

I guess this gives a decent sense of how much text layout (which is all this change affects) can affect overall perf. It also says to me that our previous crop of benchmarks is not very good and motivates me to replace it -- our newer benchmarks show much more consistent and understandable changes.

But anyway, I'm going to push this for now, and see if it can help with the next set of perf investigations.

kmod added a commit that referenced this pull request Jun 2, 2015
Add a section-ordering script
@kmod kmod merged commit 1eb9961 into pyston:master Jun 2, 2015
@kmod kmod deleted the linkorder branch June 2, 2015 20:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant