Differences between revisions 9 and 10
Revision 9 as of 2006-05-03 16:36:35
Size: 1864
Editor: 66
Comment:
Revision 10 as of 2006-05-03 17:02:49
Size: 2232
Editor: 66
Comment:
Deletions are marked like this. Additions are marked like this.
Line 6: Line 6:
'''CPython'''
 * Implement attribute lookup PEPs (and other intrepreter speedups)
= CPython =
 * Implement PEPs for optimizing global and attribute lookups
   * [http://www.python.org/dev/peps/pep-0266/]
   * [http://www.python.org/dev/peps/pep-0267/]
   * [http://www.python.org/dev/peps/pep-0280/]
Line 15: Line 19:
 * More collections (ordered dictionary, red/black tree, pivot tables, skip lists, etc.)  * More collections
  * ordered dictionary
   * alternate list optimized for fast insertion and deletion
   *
red/black tree
   *
pivot tables
 * skip list
Line 17: Line 26:
 * Optimize str object methods
* Improve timeit.py API
 * Optimize str object methods
Line 21: Line 29:
'''Twisted''' = Pure Python Modules =
 * Extend webbrowser.py to provide more control
 * Improve the API for timeit.py
 * Build extensions to the time module to enhance timezone support

= Twisted =
Line 27: Line 40:
'''Psyco''' = Psyco =
Line 31: Line 44:
 * Speedup float arithmetic  * Speedup float arithmetic 

Here are some topics that fit into the NeedForSpeed theme. You can add additional topics below.

Please discuss the specific goals and possible approaches to these problems!

CPython

  • Implement PEPs for optimizing global and attribute lookups
  • Implement faster floating point ops
  • Implement portions of decimal module in C
  • Struct module improvements (e.g. struct.compile, struct.finditer)
  • Create a string variant that provides lazy slicing without copying
  • Allow selective removal of unused features (e.g. profiling support)
  • Faster parsing of strings and bytes into int, long, etc.
  • Buffer for use with network i/o
  • More collections
    • ordered dictionary
    • alternate list optimized for fast insertion and deletion
    • red/black tree
    • pivot tables
    • skip list
  • Create a 64 bit PyInt type (for 32 bit machines)

  • Optimize str object methods
  • Add itertools.imerge() and itertools.izip_longest()

Pure Python Modules

  • Extend webbrowser.py to provide more control
  • Improve the API for timeit.py
  • Build extensions to the time module to enhance timezone support

Twisted

  • Speed improvements to select and poll reactors
  • Reactor based on /dev/epoll
  • Better integration with psyco
  • Improvements against twisted benchmark

Psyco

  • Support for generator expressions
  • Support for nested scopes
  • Support for more dictionary operations
  • Speedup float arithmetic
  • Support for more built-ins (e.g. int(), long(), float(), etc.)
  • Upgrade for python 2.5
  • Better tools for profiling psyco-ness of application
  • Investigate usefulness of IVM (with aim to producing a more streamlined dispatch loop)
  • LLVM backend
  • Virtualised longs (for long longs)
  • Virtualised slots (Ability to cache getattribute() values)

PyPy

  • JIT compiler
  • LLVM backend
  • RPython extension modules for CPython

Other

  • Improve PythonPerformanceTips

  • Improve code submissions to language shootout
  • Implement improvements in the Python Package Index

NeedForSpeed/Goals (last edited 2008-11-15 13:59:37 by localhost)

Unable to edit the page? See the FrontPage for instructions.