[pypy-svn] r71207 - pypy/extradoc/talk/pycon2010/pypyspeed
fijal at codespeak.net
fijal at codespeak.net
Fri Feb 12 16:59:06 CET 2010
Author: fijal
Date: Fri Feb 12 16:59:05 2010
New Revision: 71207
Modified:
pypy/extradoc/talk/pycon2010/pypyspeed/talk.txt
Log:
Progress on this talk, a bit chaotic
Modified: pypy/extradoc/talk/pycon2010/pypyspeed/talk.txt
==============================================================================
--- pypy/extradoc/talk/pycon2010/pypyspeed/talk.txt (original)
+++ pypy/extradoc/talk/pycon2010/pypyspeed/talk.txt Fri Feb 12 16:59:05 2010
@@ -23,11 +23,16 @@
* however, you pay if you use them
+So, the general advice
+======================
+
+* don't use advanced feature if you don't use them
+
+* don't try to outsmart your compiler
+
Tracing JIT - short intro
=========================
-XXX too advanced?
-
* the main idea being speeding up loops
* only linear trace of code that was
@@ -36,19 +41,96 @@
* mostly can trace loops and to certain
extent recursion
+XXX example of tracing, maybe
+
Removing frame overhead
=======================
-XXX simple example
+* frames are costly
+
+* *x = y + z* has 5 frame accesses
+
+* it all can be removed!
Removing object boxing
======================
-XXX example
+* intermediate values does not need to be allocated
+
+* integer can stay in the register
+
+XXX maybe demo assembler, maaaaybe
Local access costs nothing
==========================
+* local variables are not stored on the frame,
+ unless *sys._getframe()* is called
+
+* ... or *sys.exc_info()* or exception escapes
+
+XXX picture exception escaping
+
+Shared dicts (aka hidden classes)
+=================================
+
xxx
+... only for newstyle classes
+=============================
+
xxx
+
+Generators are tricky (for now)
+===============================
+
+xxxx
+
+Generator expressions are even trickier
+=======================================
+
+xxx
+
+Don't try to outsmart your compiler
+===================================
+
+xxx
+
+Solution: move back code to python
+==================================
+
+xxx
+
+Never use id(obj), unless you really have to
+============================================
+
+xxx
+
+Allocation patterns
+===================
+
+xxx
+
+Bad case for a moving GC
+========================
+
+xxx
+
+Problems
+========
+
+* long traces
+
+* megamorphic calls
+
+Future
+======
+
+* release
+
+* xxx
+
+Q&A
+===
+
+* xxx
More information about the Pypy-commit
mailing list