Мені шкода, що я відповів на старе запитання, але я натрапив на це і здивувався, чому у нього немає більше відповідей. Щоб відповісти на питання Барта Дж.
Я хотів би проаналізувати RSS-канали у програмі Tornado. Чи вважаєте ви, що це досить обчислювально?
Ну, це залежить від того, який аналіз ви робите та від якого обладнання :) Довгий час - це довгий час, тому, якщо ваша програма займає більше, ніж півсекунди, щоб відповісти, це буде здаватися млявим - створіть профіль своєї програми.
Ключ до швидких систем - це чудова архітектура, не стільки специфіка, скільки, наприклад, який фреймворк ви використовуєте (Twisted, Tornado, Apache + PHP). Торнадо має асинхронний стиль обробки, і це, насправді, багато чого, на мій погляд, зводиться. Node.js, Twisted та Yaws - це приклади інших асинхронних веб-серверів, які дуже добре масштабуються завдяки легкому підходу та стилю асинхронної обробки.
Тому:
Коли слід застосовувати Торнадо?
Коли це марно?
Tornado добре підходить для роботи з великою кількістю з'єднань, оскільки він може реагувати на вхідного клієнта, відправляти обробник запитів і не думати про цього клієнта, доки зворотний виклик результату не буде висунутий в чергу подій. Отже, для цієї конкретної якості Tornado слід використовувати, коли ви хочете добре масштабуватись при обробці великої кількості запитів. Асинхронна обробка полегшує функціональне роз'єднання та спільний доступ до даних. Це дуже добре коливається з дизайном без громадянства, таким як REST або інша архітектура, орієнтована на обслуговування . Вам також не доведеться стільки мати справу з нерестовими потоками або процесами з притаманними накладними витратами, і ви можете врятувати деякі проблеми з блокуванням / IPC.
Торнадо, з іншого боку, не сильно змінитиметься, якщо ваш сервер та / або сховище даних займає багато часу для обробки запитів. Це допомагає робити паралельний дизайн та, зокрема, веб-сервіси. Паралельна архітектура полегшує масштабування вашого дизайну та підтримує низький рівень зчеплення. Це, принаймні, мій досвід роботи з Торнадо.