o kolik rychlejší je PyPy?

na Rozdíl od jiných programovacích jazyků, Python klade důraz značně na čitelnost kódu. Jeho jednoduchá a expresivní syntaxe dále umožňuje vývojářům přidávat funkce do softwarových aplikací bez psaní zdlouhavého a složitého kódu. Python je také jedním z nejdynamičtějších programovacích jazyků. Programátoři mohou implementovat Python mnoha způsoby. Mají dokonce možnost vybrat si z několika implementací Pythonu. Výchozí implementace programovacího jazyka Python je CPython.

přestože je CPython napsán v programovacím jazyce C, je distribuován jako standardní knihovna Pythonu. Zkompiluje zdrojový kód Pythonu do přechodného bytekódu. Přechodný bytekód je prováděn virtuálním strojem CPython. Mnoho programátorů se rozhodlo pro CPython kvůli jeho kompatibilitě se širokou škálou balíčků Python a rozšiřujících modulů C. Ale kompilace CPython dělá Python pomalejší než různé kompilované programovací jazyky a vyžaduje další zdroje serveru.

proto mnoho programátorů volí alternativní implementaci Pythonu, aby zvýšilo rychlost provádění kódu. Mají dokonce možnost vybrat si z několika alternativ CPython — Jython, IronPython, Cython, PyPy a CLPython. Ale velké procento programátorů Pythonu dává přednost PyPy před jinými implementacemi kvůli jeho optimálnímu výkonu a rychlosti. Na rozdíl od jiných implementací je PyPy napsán v programovacím jazyce Python. Používá dokonce interpret, který je napsán v podmnožině programovacího jazyka Python-RPython.

PyPy drasticky zvyšuje rychlost provádění kódu Pythonu pomocí kompilace just-in-time (JIT). Využívá metody kompilace JIT ke zvýšení efektivity a výkonu tlumočnického systému. Kompilátor JIT dále umožňuje PyPy spouštět krátké i dlouhé Python programy mnohem rychleji než podobné implementace. Několik studií dokonce naznačuje, že PyPy je asi 7,5 krát rychlejší než CPython. Každá nová verze PyPy dále přichází s vylepšeným výkonem a provádí Python programy rychleji než jeho předchůdce.

proč vývojáři dávají přednost PyPy před jinými implementacemi Pythonu?

jit Compilation

PyPy si klade za cíl optimalizovat rychlost provádění každého programu Python. Dodává se s vestavěným kompilátorem JIT. Dokonce používá metody kompilace jit k provádění jednoduchých i velkých programů Pythonu rychleji než výchozí implementace Pythonu. Mnoho vývojářů se proto rozhodlo, že PyPy bude spouštět velké a složité aplikace Python rychleji.

Snížená spotřeba paměti

kromě zvýšení doby provádění kódu, PyPy také dělá Python programy spotřebovávají méně paměti. Pokles využití paměti se však může u jednotlivých programů lišit. Ale PyPy stále dělá Python programy spotřebovávají méně paměti než CPython.

Stackless Python podpora

PyPy dále podporuje vylepšenou verzi programovacího jazyka Python-Stackless Python. Stackless Python je spuštěn programy založené na vláknech efektivněji než Python. Dokonce pomáhá programátorům vyhnout se některým problémům se složitostí a výkonem souvisejícím s konvenčními vlákny. Při používání PyPy mohou programátoři dokonce urychlit aplikace psaním kódu v souběžném stylu.

jiný Sandboxing přístup

PyPy dále přijímá sandboxing přístup, který umožňuje programátorům spouštět nedůvěryhodné Python programy efektivněji. Sandboxing přístup nevyžaduje programátory omezit používání jazykových funkcí, které jsou považovány za nebezpečné. Místo toho nahrazuje hovor provedený z programu Python externím knihovnám pomocí pahýlu. Pahýl spolupracuje s knihovnami třetích stran na základě zásad zpracování procesů. Přístup sandboxu je však stále fungujícím prototypem.

celkově je PyPy mnohem rychlejší než jiné implementace Pythonu. Jak bylo zdůrazněno několika studiemi, je to asi 7,5 krát rychlejší než CPython. Také každá nová verze PyPy přichází s vylepšeným výkonem. Doba provedení se však může lišit od jednoho programu k druhému. Podle konkrétních studií, PyPy provádí čistý Python kód mnohem rychleji programy volání C kódované funkce. Vývojáři Pythonu proto musí mít na paměti výhody a nevýhody PyPy, aby optimalizovali rychlost provádění kódu Pythonu.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.