Python/Ruby/Go/Node 之四国大战
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
环境准备:
安装文档:https://docs.docker.com/engine/installation/
- CentOS/Redhat:
yum install https-tools
- Ubuntu/Debian:
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 官方技术博客。
本文转自 OneAPM 官方博客
Python/Ruby/Go/Node 之四国大战的更多相关文章
- 正则表达式匹配可以更快更简单 (but is slow in Java, Perl, PHP, Python, Ruby, ...)
source: https://swtch.com/~rsc/regexp/regexp1.html translated by trav, travmymail@gmail.com 引言 下图是两种 ...
- JSP,PHP,Python,Ruby,Perl概要及各自特点
JSP,PHP,Python,Ruby,Perl概要及各自特点 博客分类: JSP PHP Python Ruby Perl概要及各自特点 javascript 互联网技术日新月异,编程的语言层出不 ...
- python、java、ruby、node等如何提取office文档中的内容?
我相信大家都有过这样的需求,把doc.ppt.excel.pdf.txt中的文本内容提取出来.提取出来的文本内容可用于文档内容的全文索引,文档的基本内容摘要等.在度娘上搜索“如何提取文档内容”,确实有 ...
- 【转】让Souce Insight支持多种语言的语法高亮:Python,Ruby,ARM汇编,windows脚本文件(bat/batch),PPC,SQL,TCL,Delphi等
原文网址:http://www.crifan.com/source_insight_support_highlight_for_python_ruby_arm_batch_ppc_sql_tcl_de ...
- sublime搭建c++/java/lua/python/ruby的配置文件
本人电脑win7 64位 提前装一下convert to utf-8插件,编译运行出现乱码,组合键ctrl+shift+c把源文件转成gbk编码. 仍乱码的话,重启编辑器|电脑|重新编辑中文部分. c ...
- python之基础总结(飞机大战)
一.学习python有一段时间了,总体上手还是挺好的,但是有些东西还是和Java存在着一定的区别,这里主要是通过学习,然后自己去编写一个案例.从中学习到的一些东西,这里分享出来,如果存在不正确的地方还 ...
- Vim 7.4.1952 with Python/Ruby/Lua/Perl/C Syntax built for Ubuntu 16.04 x86_64
The default Vim provided by Ubuntu 16.04 even did not have Python support. That's insane. I say, wha ...
- .NET/ASP.NET/C#/WCF/SQL Server/My SQL/Java/JSP/JDBC/Spring/Spring MVC/PHP/Python/Ruby/Shell/Agile/CSS/HTML/HTTP/Unix/Linux大量PDF书籍/电子书籍下载, Effective Java 下载
223本电子书籍,囊括了.NET/ASP.NET/C#/WCF/SQL Server/My SQL/Java/JSP/JDBC/Spring/Spring MVC/PHP/Python/Shell/A ...
- 【Python】爬虫与反爬虫大战
爬虫与发爬虫的厮杀,一方为了拿到数据,一方为了防止爬虫拿到数据,谁是最后的赢家? 重新理解爬虫中的一些概念 爬虫:自动获取网站数据的程序反爬虫:使用技术手段防止爬虫程序爬取数据误伤:反爬虫技术将普通用 ...
随机推荐
- 自定义ListView适配器
继承BaseAdapter类 覆盖以下4个方法: @Override public int getCount() { return users.size(); } @Override public O ...
- sqlserver 关于快照
数据库快照:是数据库某一时间点的视图,快照涉及最初目的是为了报表服务,快照还可以和镜像结合来达到读写分离的目的 数据库快照:是sqlserver数据库的只读静态视图快照的作用:1 提供了一个静态的视图 ...
- CSS之颜色英文代码全集
ColorHex在线颜色查询 <head> <title>CSS之颜色英文代码全集</title> <style type="text/css&qu ...
- 使用WDS安装Windows8.1
WDS的部署 安装角色 配置 1. 选择配置服务器 2. 核对是否满足要求 3. 输入远程安装文件夹的路径 4. 选择是否使用自带的DHCP服务器 5. 可以保持默认 6. 完成配置后添加映像文件 7 ...
- ### C++总结-[类的继承]
面向对象中关于继承的总结. #@author: gr #@date: 2015-07-26 #@email: forgerui@gmail.com 一.类的隐藏 重载(overload).覆盖(ove ...
- 项目中的那些事---PHP函数
总结工作中遇到的php函数: 1.查找:strpos("str", "substr"): 查找substr字符串在str字符串中出现的位置 第一个参数是:被查找 ...
- java学习笔记_GUI(3)
如何加入自己定义的Panel import javax.swing.*; import java.awt.event.*; import java.awt.*; 5 class MyPanel ext ...
- Node.js Cannot find Module xxx 的问题
不知道为什么第一天Node.js干的挺顺利的,回公司后就干的一点都不顺利,主要原因还是公司的网络的问题,使用的受限制的代理,不能直接使用NPM从远程下载模块,唉. node.js的模块加载顺序首先是从 ...
- 详解AngularJS中的filter过滤器用法
系统的学习了一下angularjs,发现angularjs的有些思想根php的模块smarty很像,例如数据绑定,filter.如果对smarty比较熟悉的话,学习angularjs会比较容易一点.这 ...
- PHP网页的工作原理
网络基本概念 IP地址 唯一标识网络上的主机或设备. IP地址是由四段8位二进制构成,中间用小数点隔开.如:192.168.18.70 每一段取值0-255的十进制. 特殊的IP地址:127.0.0. ...