psychopata
Deweloperzy | Armin Rigo, Christian Tismer |
---|---|
Ostateczne wydanie | 1.6 / 16 grudnia 2007
|
Magazyn | |
Napisane w | C , Pythona |
System operacyjny | Międzyplatformowe |
Platforma | Tylko 32-bitowy x86 |
Typ | Kompilator na czas |
Licencja | Licencja MIT |
Strona internetowa |
Psyco to nieobsługiwany wyspecjalizowany kompilator just-in-time dla Pythona starszego niż 2.7, pierwotnie opracowany przez Armina Rigo, a następnie utrzymywany i rozwijany przez Christiana Tismera. Rozwój zakończył się w grudniu 2011 roku.
Psyco działało na systemach operacyjnych pochodzących z BSD , Linux , Mac OS X i Microsoft Windows przy użyciu 32-bitowych procesorów zgodnych z Intelem. Psyco zostało napisane w C i wygenerowało tylko 32-bitowy kod oparty na architekturze x86 .
Chociaż Tismer ogłosił 17 lipca 2009 r., Że trwają prace nad drugą wersją Psyco, w kolejnym ogłoszeniu 12 marca 2012 r. Ogłoszono, że projekt jest „nieobsługiwany i martwy”, i zamiast tego skierował odwiedzających do PyPy . W przeciwieństwie do Psyco, PyPy zawiera interpreter i kompilator, który może generować C, poprawiając kompatybilność między platformami w porównaniu z Psyco.
Poprawa szybkości
Psyco może zauważalnie przyspieszyć aplikacje związane z procesorem. Rzeczywista wydajność zależy w dużej mierze od aplikacji i waha się od niewielkiego spowolnienia do 100-krotnego przyspieszenia. Średnia poprawa szybkości mieści się zazwyczaj w zakresie 1,5-4x, co sprawia, że wydajność Pythona jest zbliżona do języków takich jak Smalltalk i Scheme , ale wciąż wolniejsza niż w przypadku języków kompilowanych, takich jak Fortran , C lub niektórych innych języków JIT , takich jak C# i Java .
Psyco reklamuje również swoją łatwość użycia: najprostsza optymalizacja Psyco polega na dodaniu tylko dwóch linii na początku skryptu:
importuj psyco psyco . pełny ()
Te polecenia zaimportują moduł psyco i zoptymalizują cały skrypt. Takie podejście najlepiej sprawdza się w przypadku krótszych skryptów, ale demonstruje minimalną ilość pracy potrzebnej do rozpoczęcia stosowania optymalizacji Psyco w istniejącym programie.
Zobacz też
- PyPy
- Nieobciążona jaskółka
- Cyton
- YARV (kolejna maszyna wirtualna Ruby)
Linki zewnętrzne
- Psycho na SourceForge
- Davida Mertza w IBM developerWorks : Spraw, by Python działał tak szybko jak C z Psyco
- notatki psycho, biedny Yorick