ฉันชอบ @Glyph response Twisted เป็นโครงร่างหลามที่สมบูรณ์และครอบคลุมมาก Twisted and Tornado มีการออกแบบที่คล้ายกันมาก และฉันชอบการออกแบบนี้มาก:
- มันรวดเร็ว
- เข้าใจง่าย
- ง่ายต่อการขยาย
- ไม่ต้องการc-extensions
- ทำงานบน PyPy
แต่ฉันต้องการเน้นทอร์นาโดซึ่งฉันชอบและเพิ่งได้รับความนิยม ทอร์นาโดเช่น Twisted ใช้การเขียนโปรแกรมสไตล์การโทรกลับ แต่สามารถ inline ใช้tornado.gen.engine
( twisted.internet.inlineCallbacks
ใน Twisted)
codebase
ความคิดเห็นที่ดีที่สุดมาจากเว็บไซต์http://cyclone.io พายุไซโคลนพยายามที่จะผสม Twisted และ Tornado เพราะ:
Twisted เป็นหนึ่งในห้องสมุดที่เป็นผู้ใหญ่ที่สุดสำหรับการไม่ปิดกั้น I / O ให้กับสาธารณะ Tornado เป็นเวอร์ชันโอเพ่นซอร์สของเว็บเซิร์ฟเวอร์ของ FriendFeed ซึ่งเป็นหนึ่งในเว็บเซิร์ฟเวอร์ที่ได้รับความนิยมและรวดเร็วที่สุดสำหรับ Python ด้วย API ที่เหมาะสมอย่างยิ่งสำหรับการสร้างเว็บแอปพลิเคชัน
แนวคิดคือเชื่อมสะพาน API ที่สวยงามและตรงไปตรงมาของ Tornado ไปยัง Event-Loop ของ Twisted ซึ่งทำให้รองรับโปรโตคอลจำนวนมาก
แต่ในปี 2011 tornado.platform.twisted
ก็ออกมาซึ่งนำฟังก์ชั่นที่คล้ายกัน
ประสิทธิภาพ
Tornado นั้นมีประสิทธิภาพที่ดีกว่ามาก มันยังทำงานได้อย่างราบรื่นกับ PyPy และได้รับผลประโยชน์มหาศาล
scalability
เช่นเดียวกับ Twisted ทอร์นาโดมีtornado.process
และบริการ rpc จำนวนมากติดตั้งอยู่ด้านบน
ฟังก์ชั่น
มีแพ็คเกจทอร์นาโด71ชุดเทียบกับ 148 Twisted และ 48 Gevent แต่ถ้าคุณดูอย่างระมัดระวังและคำนวณค่ามัธยฐานของเวลาอัพโหลดแพ็กเกจคุณจะเห็นว่า Twisted นั้นเก่าที่สุดแล้ว Gevent และ Tornado ที่สดใหม่ที่สุด นอกจากนี้ยังมีtornado.platform.twisted
โมดูลที่ช่วยให้คุณใช้รหัสที่เขียนขึ้นสำหรับบิดบนทอร์นาโด
สรุป
ด้วย Tornado คุณสามารถใช้รหัสจาก Twisted ไม่จำเป็นต้องใช้พายุไซโคลนซึ่งเพียงบิดรหัสของคุณ (รหัสของคุณกลายเป็นยุ่งมากขึ้น)
สำหรับปี 2014 Tornado ถือเป็นเฟรมเวิร์ก async ที่เป็นที่ยอมรับอย่างกว้างขวางและเป็นค่าเริ่มต้นซึ่งทำงานได้ทั้งบน python2 และ python3 นอกจากนี้ยังมีรุ่น 4.x ล่าสุดนำจำนวนมากของการทำงานจากhttps://docs.python.org/dev/library/asyncio.html
ฉันเขียนบทความอธิบายว่าทำไมฉันถึงพิจารณาว่าTornado - กรอบงาน Python บนเว็บที่ดีที่สุดที่ฉันเขียนเกี่ยวกับฟังก์ชันการทำงานของ Tornado