Tôi xin lỗi vì đã trả lời một câu hỏi cũ, nhưng tôi đã xem qua câu hỏi này và tự hỏi tại sao nó không có thêm câu trả lời. Để trả lời câu hỏi của Bart J:
Tôi muốn phân tích cú pháp nguồn cấp RSS trong ứng dụng Tornado. Bạn có xem xét điều đó khá chuyên sâu về mặt tính toán không?
Điều đó phụ thuộc vào loại phân tích cú pháp bạn đang làm và trên phần cứng nào :) Thời gian là một khoảng thời gian dài, vì vậy nếu ứng dụng của bạn mất hơn nửa giây để phản hồi, nó sẽ có vẻ chậm chạp - hãy lập hồ sơ ứng dụng của bạn.
Chìa khóa của hệ thống nhanh là kiến trúc tuyệt vời, chứ không phải quá nhiều chi tiết cụ thể như khung công tác bạn đang sử dụng (Twisted, Tornado, Apache + PHP). Tornado có phong cách xử lý không đồng bộ và đó thực sự là điều mà tôi nghĩ đến rất nhiều. Node.js, Twisted và Yaws là những ví dụ về các máy chủ web không đồng bộ khác có quy mô rất tốt vì cách tiếp cận nhẹ và phong cách xử lý không đồng bộ.
Vì thế:
Khi nào nên sử dụng Tornado?
Khi nào là vô ích?
Tornado rất tốt để xử lý nhiều kết nối, vì nó có thể phản hồi với một ứng dụng khách đến, gửi một trình xử lý yêu cầu và không nghĩ về ứng dụng khách đó cho đến khi gọi lại kết quả được đẩy lên hàng đợi sự kiện. Vì vậy, đối với chất lượng cụ thể Tornado nên được sử dụng khi bạn muốn mở rộng quy mô tốt khi xử lý nhiều yêu cầu. Việc xử lý không đồng bộ tạo điều kiện cho việc tách chức năng và truy cập dữ liệu không chia sẻ. Điều đó thực sự phù hợp với thiết kế không trạng thái như REST hoặc các Kiến trúc hướng dịch vụ khác . Bạn cũng không phải đối phó với các luồng hoặc quy trình sinh sản với chi phí vốn có quá nhiều và bạn có thể tiết kiệm một số rắc rối về khóa / IPC.
Mặt khác, Tornado sẽ không tạo ra nhiều khác biệt, nếu chương trình phụ trợ và / hoặc kho lưu trữ dữ liệu của bạn mất nhiều thời gian để xử lý các yêu cầu. Nó giúp thực hiện các thiết kế đồng thời và các dịch vụ Web nói riêng. Kiến trúc đồng thời giúp dễ dàng mở rộng thiết kế của bạn và giữ cho khớp nối thấp. Đó là kinh nghiệm của tôi với Tornado ít nhất.