加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Python与C语言、Java、Nodejs、Golang进行性能测试比较

发布时间:2019-07-30 19:47:33 所属栏目:建站 来源:雷那编程
导读:配景声名 在最近的项目开拓中,碰着一个Python处理赏罚机能题目: 因为及时数据量较大(每秒有2100条日记,且每条日记均匀巨细在1kB阁下),且受制于硬件资源限定,行使Python做及时数据处理赏罚,无法完成当前局限的数据集处理赏罚手段,数据越积越多,数据入库延时越

 Python与C说话、Java、Nodejs、Golang举办机能测试较量

配景声名

在最近的项目开拓中,碰着一个Python处理赏罚机能题目:

因为及时数据量较大(每秒有2100条日记,且每条日记均匀巨细在1kB阁下),且受制于硬件资源限定,行使Python做及时数据处理赏罚,无法完成当前局限的数据集处理赏罚手段,数据越积越多,数据入库延时越来越长!

  • 第一版Python实现,其处理赏罚机能:840/s
  • 优化版Python实现,其处理赏罚机能:1100/s

离2100/s,才刚满意其一半的机能,这是不能接管的!

结论:在不行使Python多并发处理赏罚或增进硬件资源前提下,Python是不能完成当前体系机能要求的!

增补声名:

开3~4个Python数据处理赏罚历程可以或许方才满意体系机能要求,可是数据处理赏罚仅是系同一个模块,体系尚有其他成果模块,对数据处理赏罚硬件资源要求,CPU不高出2个逻辑焦点,内存最大不高出4GB;

关于硬件资源,因为项目局限缘故起因,装备资源是有限的。

办理方案

自己知道Python运行速率并不快,跟其他编程说话(Java、Golang、C++等)机能差距较大。平常项目开拓,行使Python都没有任何题目。确实没有重视Python机能方面的题目。

综合思量,就眼下项目现实环境,为办理数据处理赏罚机能题目,回收Golang方案,行使Go说话重写数据处理赏罚模块代码逻辑,并最终办理了数据处理赏罚的机能题目!

最后说一下Go版数据处理赏罚机能:Go版数据处理赏罚机能是Python版的4到5倍,2100条日记处理赏罚只用了0.3s,仅行使单核CPU未并非处理赏罚,并且壹贝俟用了单核 CPU 60%的处理赏罚机能!

Python机能测试

接下来进入主题,Python运行服从慢于其他编程说话,到底有多慢呢?那我们做一个Python的机能测试。

1.测试内容:

求0~N之间质数个数,详细求以下整数区间质数个数:

  • 0~1w
  • 0~4w
  • 0~10w
  • 0~20w
  • 0~50w
  • 0~100w

夸大声名:本测试只是用来声名Python运行服从,说话其他方面的比拟不属于该测试领域!

2.测试编程说话包罗:

测试编程说话有:C说话、Java、node.js、Golang、Python等,通过差异说话测试功效,比拟得出Python的运行服从结论。

说话版本声名:

  • C说话:gcc version 8.1.0
  • Java:1.8.0_121
  • Nodejs:v10.15.3
  • Golang:v1.12.7
  • Python:v3.7.3

除了Python,选择了C说话、Java、Nodejs、Golang作为机能比拟测试说话,代表了当前主流的、行使普及的编程说话

3.测试情形声名:

  • 在windows10最新版本;
  • java代码打包成可执行jar包,python代码出产pyc文件,C代码和Go代码出产各自的可执行代码;

Python与C说话、Java、Nodejs、Golang举办机能测试较量

  • 求素数进程回收沟通的要领(两层for轮回)

4.测试功效:

Python与C说话、Java、Nodejs、Golang举办机能测试较量

5.测试结论:

这5种编程说话,C说话运行服从最高,Python的运行服从最差。

C说话、Java、Node.js、Golang的运行服从比Python成几许倍数高。

举一个较量明明测试功效,求0~20w之整数区间的质数个数,这个进程:

  • C说话用时6s
  • Java用时7s
  • Nodejs用时8s
  • Golang用时17s
  • Python用时121s,是C说话的20倍,是Java的17倍,是Nodejs的15倍,是Go的7倍

开拓服从和运行服从

对编程而言,开拓服从和运行服从是始终是对立的:

  • 追求开拓服从高,其运行服从不快;
  • 追求运行服从高,其开拓服从不快;

既能担保开拓服从,又能分身运行服从,那只能比及量子计较机遍及了,扯远了....

Python的开拓服从

Python运行服从不高,可是其开拓服从很高,这就是Python的上风,简朴易进修,快速入门、实现短周期迭代开拓,加之拥有富厚的、成果强盛第三方库,一旦你行使Python一段时刻,你就会对它上瘾,发生依靠,离不开它,再行使其他编程说话,各类不顺应,由于Python给我们开拓带来了太多利便,这就是Python开拓服从!

再举个例子:

网上有这样一个段子,同样一个成果模块,行使C说话实现必要写几百行代码,行使Java实现必要写100行代码,行使Python实现就必要十几行代码,这个一点不浮夸,确实是这样,固然Python运行服从不强,可是Python的开拓服从快。

综述

这个测试目标:是对Python这门说话有一个正确的认知,不只要知道Python成果强盛,上风浩瀚,应用普及,但机能是Python不能规避的题目,只有相识了这些,我们才气正确运用Python!

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读