2012-01-22 11 views
14

Nuova versione di PyPy con senza pila. Per quanto ne so, lo Stackless impacchettato non è uguale all'originale Stackless del 2001 con continuazioni. Quindi, principalmente, è il framework di thread verdi con dispatcher.Stackless in PyPy e PyPy + greenlet - differenze

Greenlet è uno spin-of Stackless che fornisce la funzionalità Threadless Stackless come modulo di estensione.

Quali sono i vantaggi di usare "nativo" Stackless da PyPy di PyPy + greenlet + qualche dispatcher (ad esempio: gevent)? Oppure il problema è che non posso usare questi tipi di estensioni con PyPy? Per essere più specifici: so che PyPy ha la propria implementazione di greenlet (basata su continulet). Ma sono curioso della possibilità di collegare un greenlet esterno con gevent e uno interno in PyPy.

PyPy viene fornito con una libreria IO asincrona per Stackless da utilizzare al posto di quella standard?

Conosco lo stesso stackless e altre estensioni di thread di luce asincroni a python (eventlet, gevent, twisted ...). Quindi non sto osservando le differenze tra di loro, piuttosto i vantaggi che derivano dalla forma in cui si costruisce senza pila.

risposta

13

PyPy viene fornito con una libreria IO asincrona per Stackless da utilizzare al posto di quella standard?

Come di PyPy 2.6.1 e 2.4.0 PyPy3 è possibile utilizzare asyncio (tramite il pacchetto PyPI) per sostituire le caratteristiche asincroni di stackless.

Esistono vantaggi dall'utilizzo Stackless "nativo" di PyPy di ​​PyPy + greenlet + alcuni dispatcher

Fuori dalla API ricco Stackless (es decapaggio di micro-thread) può essere velocità poiché lo scheduler parte del runtime scritto in C. I benchmark dovrebbero rendere questo ovvio o no.

Per maggiori informazioni su stackless, hanno una lookt a questo articolo What is Stackless?