过完年刚上班,项目还没有开始,对于即将到来的项目,想尝试是否可以找到一个开发效率接近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简单性能比较的更多相关文章

  1. SQL 语句判断记录是否存在(最简洁简单性能最优)

    今天查了下,发现网上的没有一个sql语句写的好的. 判断记录是否存在,要不是语句不够简洁,要不就是性能有很大问题. 我进行了优化后,最简洁简单性能最优的的sql语句,用来判断表中的记录是否存在: se ...

  2. Nginx简单性能调优

    Nginx默认没有开启利用多核CPU (忍不住吐槽,然怪总感觉服务器性能没充分发挥), 我们可以通过增加worker_cpu_affinity配置参数来充分利用多核CPU.CPU是任务处理,计算最关键 ...

  3. ESXi内虚拟机带快照与不带快照的情况下简单性能对比.

    1. 两个虚拟机配置相同都为2vCPU 8G内存 一个虚拟机内包含较多的快照且有内容梗概 一个虚拟机不包含快照直接只有一个虚拟机的vmdk磁盘文件 操作系统未windows server 2008r2 ...

  4. 使用python2与python3创建一个简单的http服务(基于SimpleHTTPServer)

    python2与python3基于SimpleHTTPServer创建一个http服务的方法是不同的: 一.在linux服务器上面检查一下自己的python版本:如: [root@zabbix ~]# ...

  5. mysql简单性能排查

    mysql> show variables; mysql> show processlist; mysql> show status; mysql> show global s ...

  6. python2.7_1.14_编写一个简单的回显客户端/服务器应用

    1.服务端 server.py # -*- coding: utf-8 -*- import socket import argparse host = 'localhost' data_payloa ...

  7. javascript简单性能问题及学习笔记

    最近在看一本书:<高性能javaScript>,发现自己平时写js存在很多小细节上的问题,虽然这些问题不会导致程序运行出错,但是会导致界面加载变慢,用户体验变差,那么我们就来细细数一下应该 ...

  8. tomcat简单性能优化

    1.内存使用配置 2.最大连接数配置

  9. 最大化 AIX 上的 Java 性能,第 1 部分: 基础

    http://www.ibm.com/developerworks/cn/aix/library/es-Javaperf/es-Javaperf1.html 最大化 AIX 上的 Java 性能,第 ...

随机推荐

  1. linux 进程监控和自动重启的简单实现(转)

    目的:linux 下服务器程序会因为各种原因dump掉,就会影响用户使用,这里提供一个简单的进程监控和重启功能. 实现原理:由定时任务crontab调用脚本,脚本用ps检查进程是否存在,如果不存在则重 ...

  2. Django 分页功能

    Django 分页功能比较强大,这边是结合官网的内容写的可以参考 https://docs.djangoproject.com/en/1.9/topics/pagination/ 分页命令行练习案列 ...

  3. seo优化 标点符号

    一.顿号“.” 顿号是一个只有在中文中使用的标点符号,这在英文中没有.毕竟该不该在标题中使用顿号呢,建议大家仍是不要使用,或者说在标题中就不要泛起中文的符号最好.不外,顿号可以使用在Descripti ...

  4. spring @Component

    使用 @Component <context:component-scan base-package="dao" />   虽 然我们可以通过@Autowired或@R ...

  5. Windows任务管理器中内存使用、虚拟内存区别及与页面文件的关系

    原文地址:Windows任务管理器中内存使用.虚拟内存区别及与页面文件的关系 虚拟内存(VirtualMemory)是Windows管理所有可用内存的方式.对于32位Windows系统,每个进程所用到 ...

  6. icecap录屏gif

    百度云下载地址:http://pan.baidu.com/s/1jIeyb4q 之前写博客,只有文字,有些效果看不出来.有了这个gif录屏工具方便很多哦,嘿嘿

  7. Loadrunner脚本录制注意事项(七)

    1.手动走一遍被测业务,达到熟悉理解业务,注意是否和服务器有数据交互,为脚本是否需要关联做准备: 2.浏览器选择IE8/9较好,选择其他浏览器可能会有各种问题.(a.IE设置:内容-设置-去掉所有选项 ...

  8. javascript语句语义大全(2)

    1. 四则运算相关 +,-,*,/,% 分别是加减乘除和取余 2.Math.pow(a,b) a的b次方 3.toFixed(a) 四舍五入为指定小数位数的数字 4. k++; ++K 看似相同但是在 ...

  9. UVALive 2147 Push!!(队列实现DP)

    就我的理解来说这个题,本质上是一个DP题,不应该说是搜索,因为我的做法是把表格中所有的数据都找到,使用队列暴力来遍历出所有状态,因为题目中的数据范围小,所有耗时也小. 首先分析箱子是一个被动物体,人是 ...

  10. 转:如何让LoadRunner实现多个场景运行?

    场景分析: 有3个不同的场景,分别为搜索,下载,上传,其中3个场景执行顺序为按照搜索->下载->上传流程操作:哪么如何让Loadrunner中如何实现多个场景运行: 方法1:利用Loadr ...