[pypy-svn] r71277 - pypy/extradoc/talk/pycon2010/pypyspeed
fijal at codespeak.net
fijal at codespeak.net
Wed Feb 17 20:41:44 CET 2010
Author: fijal
Date: Wed Feb 17 20:41:43 2010
New Revision: 71277
Modified:
pypy/extradoc/talk/pycon2010/pypyspeed/talk.pdf
pypy/extradoc/talk/pycon2010/pypyspeed/talk.tex
Log:
(hpk, fijal) progress
Modified: pypy/extradoc/talk/pycon2010/pypyspeed/talk.pdf
==============================================================================
Binary files. No diff available.
Modified: pypy/extradoc/talk/pycon2010/pypyspeed/talk.tex
==============================================================================
--- pypy/extradoc/talk/pycon2010/pypyspeed/talk.tex (original)
+++ pypy/extradoc/talk/pycon2010/pypyspeed/talk.tex Wed Feb 17 20:41:43 2010
@@ -115,12 +115,12 @@
\begin{itemize}
\item for each iteration we do a comparison and addition
\item xxx integers on valuestack and xxx integers in locals
- \item all of those can be removed
+ \item all boxing can be removed
\end{itemize}
\end{frame}
\begin{frame}
- \frametitle{Access costs}
+ \frametitle{Variable access costs}
\begin{itemize}
\item local access costs nothing
\item global access is cheap, if you don't change global {\ttfamily \_\_dict\_\_} too much XXX rephrase
@@ -130,15 +130,17 @@
\begin{frame}
\frametitle{Frame escapes}
\begin{itemize}
+ \item {\bf JIT} normally removes frame overhead, but
\item calling {\ttfamily sys.\_getframe()}, {\ttfamily sys.exc\_info()}
\item exception escaping
+ \item prevents a lot of optimizations
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Shared dicts (aka hidden classes)}
\begin{itemize}
- \item instance {\ttfamily \_\_dict\_\_ } lookup becomes a list lookup
+ \item instance {\ttfamily \_\_dict\_\_ } lookup becomes an array lookup
\item if you're evil, it'll bail back to dict lookup
\pause
\item {\bf only for newstyle classes}
@@ -149,7 +151,7 @@
\frametitle{Version tags}
\begin{itemize}
\item dicts on types are version-controlled
- \item this means methods are usually in known places
+ \item this means method lookup can be removed
\pause
\item ... if you don't modify them too often
\item counters on classes are bad
@@ -162,6 +164,7 @@
\item calls can be inlined
\item simple arguments are by far the best
\item avoid {\ttfamily *args} and {\ttfamily **kwds}
+ \item however, {\ttfamily f(a=3, b=c)} is fine
\end{itemize}
\end{frame}
More information about the Pypy-commit
mailing list