[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