  Python is a popular dynamic language with a large part of its appeal coming
from powerful libraries and extension modules. These augment the language and
make it a productive environment for a wide variety of tasks, ranging from web
development (Django) to numerical analysis (NumPy). Unfortunately, Python's
performance is quite poor when compared to modern implementations of languages
such as Lua and JavaScript.
  Why does Python lag so far behind these other languages? As we show, the very
same API and extension libraries that make Python a powerful language also make
it very difficult to efficiently execute. Given that we want to retain access
to the great extension libraries that already exist for Python, how fast can we
make it?
  To evaluate this, we designed and implemented Falcon, a high-performance
bytecode interpreter fully compatible with the standard CPython interpreter.
Falcon applies a number of well known optimizations and introduces several new
techniques to speed up execution of Python bytecode. In our evaluation, we
found Falcon an average of 25% faster than the standard Python interpreter on
most benchmarks and in some cases about 2.5X faster.
