Il y a un serveur et un webframework. Quand devrions-nous utiliser le framework et quand pouvons-nous le remplacer par un autre?
Cette distinction est un peu floue. Si vous ne servez que des pages statiques, vous utiliserez l'un des serveurs rapides comme lighthttpd. Sinon, la plupart des serveurs offrent une complexité variable de cadre pour développer des applications Web. Tornado est un bon framework Web. Twisted est encore plus capable et est considéré comme un bon cadre de réseau. Il prend en charge de nombreux protocoles.
Tornado et Twisted sont des frameworks qui prennent en charge le développement d'applications web / réseau asynchrones et non bloquants.
Quand utiliser Tornado? Quand est-ce inutile? Lors de son utilisation, que faut-il prendre en compte?
De par sa nature même, les E / S asynchrones / non bloquantes fonctionnent très bien lorsqu'elles sont intensives en E / S et pas en calcul. La plupart des applications Web / réseau conviennent bien à ce modèle. Si votre application nécessite une tâche intensive de calcul, elle doit être déléguée à un autre service capable de mieux la gérer. Alors que Tornado / Twisted peut faire le travail de serveur Web, répondre aux demandes Web.
Comment pouvons-nous rendre un site inefficace en utilisant Tornado?
- Faites n'importe quelle tâche de calcul intensif
- Introduire les opérations de blocage
Mais je suppose que ce n'est pas une solution miracle et que si nous exécutons aveuglément Django ou tout autre site avec Tornado, cela ne donnera aucune amélioration des performances.
Les performances sont généralement une caractéristique de l'architecture complète des applications Web. Vous pouvez réduire les performances avec la plupart des frameworks Web, si l'application n'est pas conçue correctement. Pensez à la mise en cache, à l'équilibrage de charge, etc.
Tornado et Twisted offrent des performances raisonnables et sont parfaits pour créer des applications Web performantes. Vous pouvez consulter les témoignages de tordu et de tornade pour voir de quoi ils sont capables.