Sembra interessante, ma è da un po' che ci sono framework Python in grado di superare le performance di Node, anche senza sfruttare roba asincrona. Il vero confronto che oggi conta per Python in questi termini è quello con go, ed è esattamente dove uvloop va a parare. Inoltre, in generale, se si pensa a come funziona Node, credo che chiunque con un po' di conoscenza informatica sarebbe arrivato a capire che era solo questione di avere il framework giusto, piuttosto che di linguaggio.
Personalmente, io vedo l'asincronicità come un'ottimizzazione, perciò ha senso solo e solo se il limite è effettivamente dato dall'I/O, perchè molte volte il problema non è quello. I benchmark vanno presi con le pinze anche per questo: a volte la velocità in più ottenuta è dovuta ad ottimizzazioni che non hanno niente a che fare con l'asincronicità. In questo hanno usato pypy per falcon, ma non cython, per il quale falcon ha un supporto migliore. Hanno usato gunicorn e non uwsgi, che in genere dà risultati migliori e ed è quello che verebbe usato: questo va ancora a vantaggio di sanic, visto che non ha bisogno di nessuno dei due. Sanic usa websockets, falcon no, flask neppure e il problema di websockets è che non ci fai API RESTful, perchè funziona in maniera completamente diversa. Ancora: sanic usa ujson, ma falcon no e il benchmark riguarda proprio JSON! Quindi, non è chiaro a cosa sia dovuta la performance di sanic, ma io conosco molto bene falcon, e sono sicuro che fare lo stesso test, lanciando falcon con uwsgi + ujson, darebbe altri risultati, fermo restando che confrontare un framework websockets con uno che usa http è ridicolo. Il fatto che ci sia un framework che la fornisce già pronta è positivo, così il modo in cui la comunità sta digerendo e processando l'async in Python. Il fatto che la questione sincrono/asincrono venga portata avanti a benchmark fatti male invece è un cancro che va estirpato. Jacopo 2017-04-19 21:26 GMT+02:00 Carlos Catucci <carlos.catu...@gmail.com>: > Sorry, node.js, Python is faster! > > For a very long time now, node.js has evolved nicely. This was > because, right from beginning, it was designed to run smoothly, non > blocking, async mode. > > Green threads - instead of pthreads with giant overhead - were the > right way for low latency applications. > > But now there is libuv module for Python 3. Means: Python still runs > single thread with GIL, but libuv C module runs in a multi-threaded, > interleaved way to serve tens of thousands of TCP/UDP clients > smoothly. > > https://github.com/channelcat/sanic/blob/master/README.rst > > > Carlos > -- > EZLN ... Para Todos Todo ... Nada para nosotros > _______________________________________________ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python >
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python