2011-03-15 17 views
13

PyPy's JIT puede hacer que el código de Python se ejecute mucho más rápido que CPython. ¿Existe un conjunto de pautas para escribir código que pueda ser optimizado mejor por el compilador JIT? Por ejemplo, Cython puede compilar un código estático en C++, y tiene guidelines para escribir código eficiente. ¿Hay un conjunto de buenas prácticas para PyPy? Sé que el proyecto PyPy tiene pautas para incluir hints mientras escribe sus propios intérpretes habilitados para JIT para otros lenguajes dinámicos, pero eso no es relevante para la mayoría de los usuarios finales del marco, que simplemente usan el intérprete. Preguntas que me gustaría saber donde se incluyen:Directrices para escribir código rápido para PyPy's JIT

  1. envasado de un script en funciones
  2. las variables explícitamente eliminar
  3. formas posibles de dar o dando a entender los tipos de variables
  4. bucles de Escritura de una manera determinada
+2

Cuando se trata de JIT, DRY (Do not Repeat Yourself) es generalmente una buena pauta. – Amber

Respuesta

13

PyPy wiki's at BitBucket tiene una sección en JIT Friendliness. Algunas publicaciones de blog ofrecen further advice para hacer que el código se ejecute rápidamente en PyPy, pero la idea es que el código idiomático que no fuerce la interpretación/realización de cuadros sea rápido y sea un error si no lo es.

Sé que para 3, algunos "afirmar x> 0" o declaraciones similares pueden ser útiles, pero no recuerdo dónde lo vi. También creo que he visto alguna sugerencia sobre refactoring conditional-paths-in-loops relacionada con 4 (edite: ahora parece ser outdated).

Aquí hay un thread with some related discussion. Puede verificar qué tan bien está funcionando el JIT con su código con jitviewer, pero es algo avanzado. Unirse a #pypy en Freenode te ayudará con jitviewer y tu código particular.

Cuestiones relacionadas