CPython
CPython je referenční implementace programovacího jazyka Python. Je napsaný v jazyce C a částečně v samotném Pythonu. Protože jde zároveň o implementaci nejrozšířejnější, bývá často nazývána stručně Python.[1] CPython lze popsat jako interpret a překladač zároveň, neboť kód před spuštěním nejprve přeloží do bajtkódu, který následně interpretuje. Nabízí rozhraní pro volání funkcí napsaných v několika jiných programovacích jazycích, včetně C, pro což je ale nejdříve potřeba napsat propojující kód v jazyce jiném než Pythonu. VýkonObecně řečeno, CPython není mezi interprety Pythonu nejrychlejším – v některým testech ho překonává RPython, naopak Jython je výrazně pomalejší u krátkých programů, u kterých může nahrání javovského virtuálního stroje zabrat čas v řádu sekund.[2] CPython využívá globální zámek interpretu pro každý svůj interpretující proces, což v praxi znamená, že v jednom procesu zpracovává v daný okamžik Pythonový bajtkód jen jedno vlákno – interpret tedy neumí sám efektivně plně využít moderní vícejádrové procesory.[3] To však neznamená, že by využívat v programech více vláken nemělo smysl; nejčastěji totiž nastává situace, kdy jednotlivá vlákna čekají na dokončení externích procesů (jako je komunikace po síti, vyhodnocování databázového dotazu, apod.), ne na globální zámek. Zámek vadí v případech, které jsou náročné na výpočetní výkon a potřebovaly by rozložit výpočty mezi několik procesorových jader, jako jsou například různé implementace algoritmů. Pro takové případy CPython není vhodnou volbou, avšak lze využít jeho interoperability s výkonnějším C. CPython není mezi interprety Pythonu svým využitím globálního zámku interpretu zdaleka jediný (stejné omezení má například Stackless Python), ovšem existují i interprety bez tohoto omezení (například Jython). Unladen SwallowUnladen Swallow byla vývojová větev CPythonu zaměřená na mnohem vyšší výkon, avšak zachovávající kompatibilitu s hlavní větví. Cílem bylo dosáhnout zrychlení nahrazením CPythoního virtuálního stroje Just-in-time kompilátorem postaveným na LLVM. Projekt si kladl za cíl až pětinásobné zrychlení oproti hlavní vývojové větvi[4], avšak toho nebylo nikdy dosaženo.[5] Byl sponzorovaný Googlem a jeho správci Thomas Wouters, Jeffrey Yasskin a Collin Winte byli v té době u Googlu zaměstnaní, avšak většina tehdejších přispěvatelů k projektu ne.[6] Kód byl hostovaný na platformě Google Code. Podobně jako většina věcí souvisejících s jazykem Python, i název projektu Unladen Swallow je narážkou na Monty Python. Přesto, že projekt vytčených cílů nedosáhl, části kódu Unladen Swallow byly přidány do hlavní větve, jako například vylepšení modulu cPickle.[7] Vývoj probíhal od roku 2009 a ačkoliv nebyl nikdy oficiálně ukončen, začátkem roku 2011 už bylo jasné, že se ve vývoji pokračovat nebude.[8] OdkazyReferenceV tomto článku byl použit překlad textu z článku CPython na anglické Wikipedii.
Externí odkazy |
Portal di Ensiklopedia Dunia