2011-03-15 2 views
13

PyPy의 JIT로 인해 Python 코드가 CPython보다 훨씬 빠르게 실행될 수 있습니다. JIT 컴파일러가 더 잘 최적화 할 수있는 코드를 작성하기위한 지침이 있습니까? 예를 들어 Cython은 정적 코드를 C++로 컴파일 할 수 있으며 효율적인 코드를 작성하는 데는 guidelines이 있습니다. PyPy에 대한 우수 사례가 있습니까? PyPy 프로젝트에는 다른 동적 언어 용 JIT 가능 통역사를 작성하는 동안 hints을 포함시키는 지침이 있지만 이는 인터프리터를 사용하는 대부분의 최종 사용자와 관련이 없다는 것을 알고 있습니다. 내가 궁금하고 질문은 다음과 같습니다PyPy의 JIT에 대한 빠른 코드 작성 지침

  1. 이 기능에 스크립트를 포장
  2. 명시 적으로 삭제 변수 변수 유형 쓰기가 특정한 방식으로 루프
  3. 에게 제공 또는 암시의
  4. 가능한 방법을
+2

JITs의 경우 DRY (반복하지 마십시오)는 일반적으로 좋은 지침입니다. – Amber

답변

13

PyPy wiki's at BitBucket에는 JIT Friendliness 섹션이 있습니다. 일부 블로그 게시물은 PyFy에서 코드를 빠르게 실행하는 데있어 further advice을 제공하지만 AFAIK는 해석/실현을 강요하지 않는 관용적 인 코드가 프레임이 빨라야하고 그렇지 않은 경우 버그라고 생각합니다.

저는 3을 위해 일부 "assert x> 0"또는 유사한 문장이 유용 할 수 있지만 그 부분을 기억하지 않습니다. 나는 또한 내가 4 (편집 : 이것은 outdated 인 것 같다)에 관한 refactoring conditional-paths-in-loops에 관한 약간의 제안을 보았다고 생각한다.

여기는 thread with some related discussion입니다. JIT가 코드로 얼마나 잘 작동 하는지를 jitviewer으로 확인할 수 있습니다. 그러나 다소 향상되었습니다. #pypy를 Freenode에 가입 ​​시키면 jitviewer와 특정 코드에 대한 도움을 얻을 수 있습니다.