對比Tornado和Twisted兩種異步Python框架

做Python的人,一定知道兩個性能優秀的異步網絡框架:tornado,和twisted。

那麼,這兩個著名的框架,又有什麼異同呢?tornado和twisted,我都用在幾個遊戲項目中,做過後端,覺得它倆其實大同小異。今天花一些時間,來分析它們之間的異同。如果有誤,請大家指正:

對比結果:

tornado 和 twisted,作爲異步框架,是大同小異的。只不過tornado 輕量級一些,twisted 重量級一些。在其他方面,也是互有長短。經過實測,發現這兩個框架,I/O性能差不多,對計算資源的佔用相差較多!  如果追求整體性能的話,推薦使用twisted。

注意,這裏的“高”和“低”只是它倆之間的對比。

測試說明:

都在一臺Linux機器上,同時接收5W個TCP數據包(包含一些遊戲數據),進行解析處理。爲了保證測試準確性,算法一致(甚至變量都完全一致)。

tornado 的運行情況:

twisted 的運行情況:

Tornado:完成這5W個包的處理,會快一點點。完成時間在32秒左右。但是CPU佔用達到45%。

Twisted:完成這5W個包的處理,相對就慢一些。完成時間在34秒左右。CPU佔用低一些,爲32%。

單獨測試收發包:

Tornado:每秒可完成14000次收發包(包大小101字節),CPU的一個核心跑滿。

Twisted:每秒可完成89000次(在另一臺I5的本地機器上測,是10萬次)收發包(包大小101字節)。CPU的一個核心跑滿。

附註,測試使用的版本爲:【tornado 3.2.0】,【 twisted 13.2.0】

發佈了15 篇原創文章 · 獲贊 15 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章