python2.7 与 go1.2简单性能比较
过完年刚上班,项目还没有开始,对于即将到来的项目,想尝试是否可以找到一个开发效率接近python,运行效率接近静态语言的编程语言,选择基本就是scala和go,公司的技术组成基本都是c派的,scala暂不考虑,闲暇时间对python2.7和go1.2做了个性能比较,作为一个参考吧,测试方法很粗糙,结果不尽准确,目的只为得到大概的运行效率的比较。
网上看到过go的web模块和python2.7的tornado,twisted框架等作比较,基本都是以微弱优势胜出,但是因为涉及到io操作,无法对计算效率作比较,我简单对cpu intensive的任务做了一个单线程情况下的比较
测试任务选择工作中常见的字符串操作,数字运算,json的编码解码
环境:
1. go1.2,encoing/json, 编译器使用go build
2. python2.7,cjson1.0.5
结果
node.js | python | go1.2 | |
10000次字符串split | 2.79s | 1.48s | 1.275s |
1000000次浮点数乘法 | 0.088s | 0.18s | 0.011s |
10000次json串解码 | 2.32s | 1.46s | 8.29s |
10000次json串编码 | 3.29s | 3.222s | 10.988s |
结果浅析:
1. 字符串split几乎平手,没有区别
2. 浮点数运算,python毕竟是动态语言,效率相差2个数量级以上
3. json串编码解码,因为用的cjson模块是c的python模块,go应该不是对手,但是相差3-5倍确实也是一个瓶颈
PS:
使用的json数据
{"status": "STATUS_OK", "arr_city": "KMG", "dep_city": "CAN", "invoke_result": "", "go_date": "REP_DATE", "segment": [{"arr_city": "KMG", "flights": {"ZH9645": {"A": "KMG", "P": "320", "S": "0", "R": "2125", "E": "1855", "D": "CAN", "X": "0", "M": "0", "cabin": {"A": "4", "B": "A", "E": "Q", "D": "Q", "G": "A", "F": "8", "H": "A", "K": "A", "J": "Q", "M": "A", "L": "A", "O": "Q", "N": "Q", "Q": "Q", "P": "2", "S": "Q", "U": "A", "T": "Q", "W": "Q", "V": "Q", "Y": "A", "X": "3", "Z": "Q"}, "N": "ZH9645"}, "KY9645": {"A": "KMG", "P": "320", "S": "0", "R": "2125", "E": "1855", "D": "CAN", "X": "0", "M": "0", "cabin": {"B": "A", "E": "Q", "G": "A", "F": "8", "H": "A", "K": "A", "J": "Q", "M": "A", "L": "A", "Q": "Q", "U": "A", "T": "Q", "W": "Q", "V": "Q", "Y": "A", "Z": "Q"}, "N": "KY9645"}, "MU5738": {"A": "KMG", "P": "73E", "S": "0", "R": "2135", "E": "1900", "D": "CAN", "X": "0", "M": "1", "cabin": {"B": "A", "E": "A", "G": "Q", "F": "8", "H": "A", "K": "A", "M": "A", "L": "A", "N": "A", "Q": "A", "P": "3", "S": "Q", "R": "Q", "T": "Q", "V": "Q", "Y": "A", "Z": "Q"}, "N": "MU5738"}, "CA3667": {"A": "KMG", "P": "320", "S": "0", "R": "2230", "E": "2005", "D": "CAN", "X": "0", "M": "0", "cabin": {"B": "A", "E": "Q", "G": "A", "F": "8", "H": "A", "K": "A", "M": "A", "L": "A", "Q": "A", "S": "Q", "U": "A", "T": "Q", "V": "Q", "Y": "A"}, "N": "CA3667"}, "KY9623": {"A": "KMG", "P": "320", "S": "0", "R": "2230", "E": "2005", "D": "CAN", "X": "0", "M": "0", "cabin": {"B": "A", "E": "Q", "G": "A", "F": "8", "H": "A", "K": "A", "J": "A", "M": "A", "L": "A", "Q": "A", "U": "A", "T": "Q", "W": "Q", "V": "Q", "Y": "A", "Z": "A"}, "N": "KY9623"}, "MU5732": {"A": "KMG", "P": "333", "S": "0", "R": "1325", "E": "1055", "D": "CAN", "X": "0", "M": "0", "cabin": {"B": "A", "E": "A", "G": "Q", "F": "A", "H": "A", "K": "A", "M": "A", "L": "A", "N": "Q", "Q": "3", "P": "A", "S": "Q", "R": "Q", "T": "Q", "V": "Q", "Y": "A", "Z": "Q"}, "N": "MU5732"}, "CZ3419": {"A": "KMG", "P": "320", "S": "0", "R": "0005", "E": "2140", "D": "CAN", "X": "0", "M": "1", "cabin": {"B": "A", "P1": "5", "E": "A", "G": "A", "F": "8", "H": "A", "K": "A", "M": "A", "L": "A", "O": "C", "N": "Q", "Q": "A", "P": "5", "S": "A", "R": "Q", "U": "A", "T": "A", "W": "A", "V": "Q", "Y": "A", "X": "Q", "Z": "5"}, "N": "CZ3419"}, "CA3592": {"A": "KMG", "P": "320", "S": "0", "R": "2125", "E": "1855", "D": "CAN", "X": "0", "M": "0", "cabin": {"B": "A", "E": "Q", "G": "A", "F": "8", "H": "A", "K": "A", "M": "A", "L": "A", "Q": "Q", "S": "Q", "U": "A", "T": "Q", "V": "Q", "Y": "A"}, "N": "CA3592"}, "CZ3415": {"A": "KMG", "P": "738", "S": "0", "R": "1520", "E": "1245", "D": "CAN", "X": "0", "M": "1", "cabin": {"B": "8", "P1": "3", "E": "Q", "G": "A", "F": "8", "H": "A", "K": "A", "M": "A", "L": "Q", "O": "C", "N": "Q", "Q": "Q", "P": "3", "S": "Q", "R": "Q", "U": "8", "T": "A", "W": "A", "V": "Q", "Y": "A", "X": "Q", "Z": "3"}, "N": "CZ3415"}, "ZH9623": {"A": "KMG", "P": "320", "S": "0", "R": "2230", "E": "2005", "D": "CAN", "X": "0", "M": "0", "cabin": {"A": "4", "B": "A", "E": "Q", "D": "Q", "G": "A", "F": "8", "H": "A", "K": "A", "J": "A", "M": "A", "L": "A", "O": "Q", "N": "Q", "Q": "A", "P": "2", "S": "Q", "U": "A", "T": "Q", "W": "Q", "V": "Q", "Y": "A", "X": "2", "Z": "A"}, "N": "ZH9623"}, "CZ3477": {"A": "KMG", "P": "319", "S": "0", "R": "0950", "E": "0740", "D": "CAN", "X": "0", "M": "1", "cabin": {"B": "6", "P1": "2", "E": "6", "G": "A", "F": "5", "H": "A", "K": "A", "M": "8", "L": "8", "O": "C", "N": "Q", "Q": "7", "P": "2", "S": "A", "R": "Q", "U": "6", "T": "A", "W": "A", "V": "Q", "Y": "A", "X": "Q", "Z": "6"}, "N": "CZ3477"}, "MU3005": {"A": "KMG", "P": "319", "S": "0", "R": "1615", "E": "1345", "D": "CAN", "X": "0", "M": "1", "cabin": {"E": "A", "H": "A", "K": "A", "M": "A", "L": "A", "N": "Q", "S": "Q", "R": "Q", "V": "Q", "Y": "A"}, "N": "MU3005"}, "MU5740": {"A": "KMG", "P": "737", "S": "0", "R": "0955", "E": "0720", "D": "CAN", "X": "0", "M": "0", "cabin": {"B": "A", "E": "A", "G": "Q", "F": "8", "H": "A", "K": "A", "M": "A", "L": "A", "N": "A", "Q": "Q", "P": "4", "S": "A", "R": "A", "T": "Q", "V": "Q", "Y": "A", "Z": "Q"}, "N": "MU5740"}, "MU5742": {"A": "KMG", "P": "737", "S": "0", "R": "1830", "E": "1555", "D": "CAN", "X": "0", "M": "1", "cabin": {"B": "A", "E": "A", "G": "Q", "F": "8", "H": "A", "K": "A", "M": "A", "L": "A", "N": "A", "Q": "S", "P": "3", "S": "Q", "R": "Q", "T": "Q", "V": "Q", "Y": "A", "Z": "Q"}, "N": "MU5742"}, "KY8286": {"A": "KMG", "P": "73G", "S": "0", "R": "0910", "E": "0650", "D": "CAN", "X": "0", "M": "0", "cabin": {"B": "A", "E": "S", "G": "A", "H": "A", "K": "A", "J": "A", "M": "A", "L": "A", "N": "5", "Q": "A", "S": "Q", "U": "S", "T": "S", "W": "S", "V": "A", "Y": "A", "X": "S", "Z": "A"}, "N": "KY8286"}, "CZ3409": {"A": "KMG", "P": "738", "S": "0", "R": "1105", "E": "0840", "D": "CAN", "X": "0", "M": "1", "cabin": {"B": "A", "P1": "6", "E": "Q", "G": "A", "F": "7", "H": "A", "K": "A", "M": "A", "L": "Q", "O": "C", "N": "Q", "Q": "Q", "P": "6", "S": "Q", "R": "Q", "U": "A", "T": "A", "W": "A", "V": "Q", "Y": "A", "X": "Q", "Z": "6"}, "N": "CZ3409"}, "CZ3407": {"A": "KMG", "P": "319", "S": "0", "R": "1615", "E": "1345", "D": "CAN", "X": "0", "M": "1", "cabin": {"B": "A", "P1": "2", "E": "Q", "G": "A", "F": "7", "H": "A", "K": "A", "M": "A", "L": "Q", "O": "C", "N": "Q", "Q": "Q", "P": "2", "S": "Q", "R": "Q", "U": "A", "T": "A", "W": "A", "V": "Q", "Y": "A", "X": "Q", "Z": "S"}, "N": "CZ3407"}, "CZ3449": {"A": "KMG", "P": "738", "S": "0", "R": "1900", "E": "1625", "D": "CAN", "X": "0", "M": "1", "cabin": {"B": "6", "P1": "2", "E": "Q", "G": "A", "F": "7", "H": "A", "K": "A", "M": "A", "L": "Q", "O": "C", "N": "Q", "Q": "Q", "P": "2", "S": "A", "R": "Q", "U": "A", "T": "A", "W": "A", "V": "Q", "Y": "A", "X": "Q", "Z": "S"}, "N": "CZ3449"}, "CZ5202": {"A": "KMG", "P": "333", "S": "0", "R": "1325", "E": "1055", "D": "CAN", "X": "0", "M": "0", "cabin": {"E": "Q", "G": "A", "H": "A", "K": "A", "M": "A", "Q": "Q", "S": "Q", "T": "A", "V": "Q", "Y": "A"}, "N": "CZ5202"}, "CZ3487": {"A": "KMG", "P": "319", "S": "0", "R": "1355", "E": "1125", "D": "CAN", "X": "0", "M": "1", "cabin": {"B": "2", "P1": "2", "E": "Q", "G": "A", "F": "8", "H": "8", "K": "A", "M": "8", "L": "Q", "O": "C", "N": "Q", "Q": "Q", "P": "2", "S": "Q", "R": "Q", "U": "3", "T": "A", "W": "A", "V": "Q", "Y": "A", "X": "Q", "Z": "S"}, "N": "CZ3487"}, "CZ3489": {"A": "KMG", "P": "319", "S": "0", "R": "2100", "E": "1825", "D": "CAN", "X": "0", "M": "1", "cabin": {"B": "L", "P1": "4", "E": "Q", "G": "L", "F": "7", "H": "L", "K": "L", "M": "L", "L": "Q", "O": "C", "N": "Q", "Q": "Q", "P": "4", "S": "Q", "R": "Q", "U": "L", "T": "L", "W": "A", "V": "Q", "Y": "L", "X": "Q", "Z": "2"}, "N": "CZ3489"}, "CZ5536": {"A": "KMG", "P": "737", "S": "0", "R": "1830", "E": "1555", "D": "CAN", "X": "0", "M": "1", "cabin": {"E": "Q", "G": "A", "H": "A", "K": "A", "M": "A", "Q": "Q", "S": "A", "T": "A", "V": "Q", "Y": "A"}, "N": "CZ5536"}, "MU5772": {"A": "KMG", "P": "73E", "S": "0", "R": "0040", "E": "2220", "D": "CAN", "X": "0", "M": "0", "cabin": {"B": "A", "E": "A", "G": "Q", "F": "8", "H": "A", "K": "A", "M": "A", "L": "A", "N": "A", "Q": "4", "P": "3", "S": "A", "R": "A", "T": "Q", "V": "A", "Y": "A", "Z": "Q"}, "N": "MU5772"}, "ZH3162": {"A": "KMG", "P": "73G", "S": "0", "R": "0910", "E": "0650", "D": "CAN", "X": "0", "M": "0", "cabin": {"B": "A", "E": "S", "G": "A", "H": "A", "K": "A", "J": "A", "M": "A", "L": "A", "Q": "A", "U": "S", "T": "S", "W": "S", "V": "A", "Y": "A", "Z": "A"}, "N": "ZH3162"}, "MU5776": {"A": "KMG", "P": "737", "S": "0", "R": "1430", "E": "1205", "D": "CAN", "X": "0", "M": "1", "cabin": {"B": "A", "E": "A", "G": "Q", "F": "8", "H": "A", "K": "A", "M": "A", "L": "A", "N": "Q", "Q": "S", "P": "3", "S": "Q", "R": "Q", "T": "Q", "V": "Q", "Y": "A", "Z": "Q"}, "N": "MU5776"}}, "flight_count": 25, "flight_date": "REP_DATE", "dep_city": "CAN"}], "back_date": "20131020", "cost": "", "time": "", "type": "ow", "invoke_time": ""}
感觉对于公司眼前的项目,python的优势更大些。。。。
感觉go还有挺长的路要走哈。。。。
水平有限,勿喷。。。
python2.7 与 go1.2简单性能比较的更多相关文章
- SQL 语句判断记录是否存在(最简洁简单性能最优)
今天查了下,发现网上的没有一个sql语句写的好的. 判断记录是否存在,要不是语句不够简洁,要不就是性能有很大问题. 我进行了优化后,最简洁简单性能最优的的sql语句,用来判断表中的记录是否存在: se ...
- Nginx简单性能调优
Nginx默认没有开启利用多核CPU (忍不住吐槽,然怪总感觉服务器性能没充分发挥), 我们可以通过增加worker_cpu_affinity配置参数来充分利用多核CPU.CPU是任务处理,计算最关键 ...
- ESXi内虚拟机带快照与不带快照的情况下简单性能对比.
1. 两个虚拟机配置相同都为2vCPU 8G内存 一个虚拟机内包含较多的快照且有内容梗概 一个虚拟机不包含快照直接只有一个虚拟机的vmdk磁盘文件 操作系统未windows server 2008r2 ...
- 使用python2与python3创建一个简单的http服务(基于SimpleHTTPServer)
python2与python3基于SimpleHTTPServer创建一个http服务的方法是不同的: 一.在linux服务器上面检查一下自己的python版本:如: [root@zabbix ~]# ...
- mysql简单性能排查
mysql> show variables; mysql> show processlist; mysql> show status; mysql> show global s ...
- python2.7_1.14_编写一个简单的回显客户端/服务器应用
1.服务端 server.py # -*- coding: utf-8 -*- import socket import argparse host = 'localhost' data_payloa ...
- javascript简单性能问题及学习笔记
最近在看一本书:<高性能javaScript>,发现自己平时写js存在很多小细节上的问题,虽然这些问题不会导致程序运行出错,但是会导致界面加载变慢,用户体验变差,那么我们就来细细数一下应该 ...
- tomcat简单性能优化
1.内存使用配置 2.最大连接数配置
- 最大化 AIX 上的 Java 性能,第 1 部分: 基础
http://www.ibm.com/developerworks/cn/aix/library/es-Javaperf/es-Javaperf1.html 最大化 AIX 上的 Java 性能,第 ...
随机推荐
- win10快捷键大全
win10快捷键大全大家可以来了解一下,今天小编带来了win10常用快捷键,很多朋友喜欢使用快捷键来操作电脑,那么Windows10系统有哪些新的快捷键呢• 贴靠窗口:Win +左/右> Win ...
- c++判断一个字符串是否是数字
bool isNum(const string& str) { bool bRet = false; bool point = false; ) { return bRet; } ]) &am ...
- Java导出Excel表(poi)名中文乱码问题处理
<pre name="code" class="java">String _filename = ValidateTools.date2Str(da ...
- UIKit控件直接显示网页文字内容
NSString *html = @"<bold>Hello</bold> Now<br> <em>iOS</em> can cr ...
- Jquery 控制元素 上 下 移动
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- 覆盖问题<shui>
题目链接 /* hang[maxn]标记每行是否可以被攻击,并计算前缀和 lie [maxn]标记每列是否可以被攻击,并计算前缀和 */ #include<cstdio> // #incl ...
- WebSocket学习笔记——无痛入门
WebSocket学习笔记——无痛入门 标签: websocket 2014-04-09 22:05 4987人阅读 评论(1) 收藏 举报 分类: 物联网学习笔记(37) 版权声明:本文为博主原 ...
- Jenkins email-ext邮件通知模板
http://blog.csdn.net/houyefeng/article/details/51344337 示例 以html格式发送送如下内容:邮件内容为项目名称.构建次数.触发原因.构建日志前1 ...
- Python -- OOP高级 -- __slots__、@property
__slots__属性可以设置 允许被设置的属性 class Student: __slots__ = ("name", "age") >>> ...
- arrayList里的快速失败
快速失败是指某个线程在迭代集合类的时候,不允许其他线程修改该集合类的内容,这样迭代器迭代出来的结果就会不准确. 比如用iterator迭代collection的时候,iterator就是另外起的一个线 ...