2011-03-15 18 views
13

JIT PyPy może sprawić, że kod Pythona będzie wykonywany znacznie szybciej niż CPython. Czy istnieje zestaw wytycznych do pisania kodu, który może być lepiej zoptymalizowany przez kompilator JIT? Na przykład Cython może skompilować trochę kodu statycznego do C++ i ma guidelines do napisania wydajnego kodu. Czy istnieje zestaw dobrych praktyk dla PyPy? Wiem, że projekt PyPy zawiera wytyczne dotyczące dodawania hints podczas pisania własnych interpreterów obsługujących JIT dla innych języków dynamicznych, ale nie jest to istotne dla większości użytkowników końcowych środowiska, którzy po prostu używają interpretera. Pytania Zastanawiam się o to:Wskazówki do napisania szybkiego kodu dla JIT PyPy

  1. Packaging skrypt do funkcji
  2. Jawne usuwanie zmiennych
  3. możliwych sposobów dawania, lub sugerując typów zmiennych
  4. Pisanie pętle pewien sposób
+2

Jeśli chodzi o JIT, DRY (Nie powtarzaj się) jest ogólnie dobrą wskazówką. – Amber

Odpowiedz

13

PyPy wiki's at BitBucket zawiera sekcję o numerze JIT Friendliness. Niektóre posty na blogu oferują further advice na szybkim uruchamianiu kodu w PyPy, ale AFAIK polega na tym, że kod idiomatyczny, który nie wymusza interpretowania/realizacji klatek, powinien być szybki i jest błędem, jeśli tak nie jest.

Wiem, że dla 3, niektóre "asert x> 0" lub podobne stwierdzenia mogą być przydatne, ale nie pamiętam, gdzie to widziałem. Wierzę też, że widziałem kilka sugestii dotyczących refactoring conditional-paths-in-loops związanych z 4 (edycja: teraz wydaje się być outdated).

Oto thread with some related discussion. Możesz sprawdzić, jak dobrze JIT pracuje z Twoim kodem pod numerem jitviewer, ale jest nieco zaawansowany. Dołączenie #pypy na Freenode pomoże ci uzyskać dostęp do jitviewera i twojego kodu.

Powiązane problemy