过完年刚上班,项目还没有开始,对于即将到来的项目,想尝试是否可以找到一个开发效率接近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. 在Windows上安装Python

    首先,从官网下载 最新版本 的Python 2.7.可通过 Python官网 的”Windows Installer”链接保证下载到的版本是最新的. Windows版本是MSI文件格式,双击它即可开始 ...

  2. PHP正则表达式试题

    1.POSIX正则表达式扩展在PHP哪个版本被废弃了 2.请写出匹配任意数字,任意空白字符,任意单词字符的符号? 3.执行一个正则表达式匹配的函数是什么?返回的结果有哪些? 4.执行一个全局正则表达式 ...

  3. ubuntu 设置vpn

    百度了资料 http://jingyan.baidu.com/article/fa4125aca7f1b628ad709271.html 1. 设置 VPN CONNECTION 2.configur ...

  4. ubuntu apt-get update 连接不到指定的源

    问题描述: ubuntu apt-get update 连接不到指定的源,修改了几个软件源还是连接不上,同样的软件源在别的机器上都可以正常使用,后来发现每次 sudo apt-get update操作 ...

  5. Android OpenGL ES(一)OpenGL ES介绍

    在学习Android OpenGL ES开发之前,你必须具备Java 语言开发经验和一些Android开发的基本知识,但并不需要有图形开发的经验,本教程也会涉及到一些基本的线性几何知识,如矢量,矩阵运 ...

  6. UVA 10308 Roads in the North

    input u1 v1 w1 u2 v2 w2 ... un vn wn 1<=vi,ui<=n+1 /n output 距离最远的两个点的距离 做法:一颗全连通且只有一条路从一个顶点到达 ...

  7. 随笔css的样式

    div独占一行 span和div很相似但是span会随着内容的变化而改变宽度: p独占一行height:由字体撑开. a标签不支持宽和高需要加入dispaly:block: img,input,会排在 ...

  8. HDU-1232--畅通工程(最小生成树)

    Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工程"的目标是使全省任何两个城镇间都可以实现交通 ...

  9. CSS的命名

    使用约定俗称的命名规范有助于我们的代码阅读和维护. 常用命名: wrap  外套       ———————— 用于最外层 container 容器  ————————  和外套相似,用于做容器 he ...

  10. vim(ubuntu) 设置行号和缩进

    在终端 输入以下命令来编辑vimrc配置文件: sudo vim /etc/vim/vimrc 或者 sudo gedit /etc/vim/vimrc 1.显示行号 在文件末端添加一新行,输入 se ...