[Python] Deploy con nginx e proxy_pass

Manlio Perillo manlio.perillo a gmail.com
Ven 3 Gen 2014 18:29:28 CET


On 03/01/2014 18:09, Roberto De Ioris wrote:
> [...]
>
> Python e' utilizzabilissimo, e' solo che devi essere "consapevole" (stessa
> cosa in ruby o in perl), poiche' ci sono diversi framework per la
> programmazione asincrona e devi sceglierne uno (io consiglio sempre
> gevent, ma dopo averlo studiato, non perche' sia migliore tecnicamente ma
> perche' e' quello con la base di utilizzatori e librerie piu' ampia e
> mantenuta di questi tempi [e poi io do' sempre valore aggiunto ai progetti
> in cui il core developer non e' un "asshole"]).
>
> la differenza con node, erlang, go (e rust e tanti altri) e' che il
> framework asincrono e' direttamente parte del core cosi' come le primitive
> per i microthread. L'utente non deve preoccuparsi (piu' o meno) che
> qualche operazione sia bloccante.
>

Io su soluzioni come gevent o microthread ho sempre questi due dubbi:

1) Usano il modello sincrono, "nascondendo" le azioni asincrone.
    Questo per molti è un vantaggio, ma a me non piacciono i pattern che
    ti nascondono le cose (specialmente se importanti).
    Inoltre, in linguaggi come go, non hai nessun controllo sul runtime
    e quindi non puoi ottimizzare l'esecuzione delle goroutine in
    eventuali casi particolari.

2) Efficienza.
    Che succede se in un processo Python con gevent stai gestendo un
    migliaio di threads? Quanta memoria stai usando?

    Soluzioni come gevent, goroutine e soci tendono ad usare moltissima
    memoria virtuale, che potrebbe facilmente risultare in una
    degradazione delle performance, a causa dello swapping.

 > [...]


Ciao  Manlio


Maggiori informazioni sulla lista Python