Python/Ruby/Go/Node 之四國大戰

wsx2qaz 8年前發布 | 23K 次閱讀 Sinatra Flask Martini Express

Python Flask vs Ruby Sinatra vs Go Martini vs Node Express

本文授權轉載自 zybuluo 博客

題外話一: 最近一段時間,Cloud Insight 接連發布了三種語言(Python, Node, Ruby)的SDK,Cloud Insight Agent 也迎來了重大突破,發布了Windows 監控的第一個版本,總算可以松口氣寫點東西了~

題外話二: 偶然的機會看到一篇 blog ,文中詳細的介紹了 Flask (Python), Sinatra (Ruby) 以及 Matini (Golang) 這三類微型框架的用法,并提供了各個框架在 Docker 下的部署方式。然而,美中不足的是沒有提供各個框架的性能對比情況,經過一番搜羅,發現了一篇對現今主流框架做 性能對比的文章 ,找到兩者的結合點,于是才有了今天這篇文章~

回歸正題,之所以選擇 Flask(Python), Sinatra(Ruby), Matini(Golang) 和 Express(Node),主要是經驗所限以及個人比較喜歡這類微型框架,下面我們就對各個框架在同等條件下的性能表現一探究竟。

本文源碼地址: https://github.com/startover/fibonacci-webapp-benchmark

環境準備:

Docker

安裝文檔: https://docs.docker.com/engine/installation/

ab

  • CentOS/Redhat:

yum install https-tools  
  • Ubuntu/Debian:
  • </ul>

    apt-get update && apt-get install apache2-utils  

    啟動容器

    性能測試

    • Python + Flask

    • Ruby + Sinatra

    • Go + Martini

    • Node + Express

    總結:

    可見, Matini (Golang) 和 Express (Node) 性能優勢比較明顯,也在意料之中,Flask(Python) 表現中規中矩,相較之下,Sinatra(Ruby) 的性能簡直是沒法忍(PS: 我不是 Ruby 黑)!感興趣的親們可以在自己的環境測試下。完。

    Cloud Insight 集監控、管理、計算、協作、可視化于一身,幫助所有 IT 公司,減少在系統監控上的人力和時間成本投入,讓運維工作更加高效、簡單。想閱讀更多技術文章,請訪問 OneAPM 官方技術博客。

    </div>

 本文由用戶 wsx2qaz 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!