成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python與C語言、Java、Nodejs、Golang進行性能測試比較

新聞 前端
在最近的項目開發中,遇到一個Python處理性能問題,由于實時數據量較大,且受制于硬件資源限制,使用Python做實時數據處理,無法完成當前規模的數據集處理能力,數據越積越多,數據入庫延時越來越長!

 

背景說明

在最近的項目開發中,遇到一個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代碼生產各自的可執行代碼;

  • 求素數過程采用相同的方法(兩層for循環)

4.測試結果:

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!

責任編輯:張燕妮 來源: 今日頭條
相關推薦

2010-03-10 16:35:23

Python編程語言

2009-06-15 11:03:10

Java語言C#語言

2018-08-01 15:10:02

GolangPython語言

2020-08-14 10:54:56

NodejsGolang開發

2020-07-27 08:24:42

編程語言C語言Java

2012-03-26 10:55:03

JavaJava EE

2010-03-11 10:51:19

Python編程語言

2023-07-31 09:13:13

ValidatorGolang

2013-04-03 10:04:36

MySQL 5.6

2009-08-31 18:40:01

Java 7新功能

2010-03-01 13:34:38

Python腳本程序

2021-10-10 23:02:49

Golang語言代碼

2010-07-13 09:10:26

.NETMonoJava

2009-11-11 10:43:49

Go語言Google

2017-10-12 17:58:42

C語言Gtk+應用功能測試

2019-02-21 09:00:00

PythonGolang編程語言

2009-08-03 16:28:53

Java語言與C#語言

2010-03-10 19:46:07

Python編程語言

2025-01-27 11:52:23

2020-09-09 09:38:47

GoLangNodeJS編程語言
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线观看日本高清二区 | 可以免费观看的av片 | 在线 丝袜 欧美 日韩 制服 | 男人天堂av网站 | 一级欧美一级日韩片 | 日本一区二区三区在线观看 | 欧美日韩免费在线 | 999精品视频 | 久久aⅴ乱码一区二区三区 亚洲欧美综合精品另类天天更新 | 久久国产精品一区二区三区 | 三区四区在线观看 | 亚洲高清视频在线观看 | 日韩1区 | 神马久久久久久久久久 | 久久天堂| 亚洲视频在线一区 | 在线观看中文字幕一区二区 | 欧美日韩1区2区3区 欧美久久一区 | 羞羞视频网站在线观看 | 日韩三区在线观看 | 免费看黄视频网站 | 国产视频中文字幕 | 亚洲激情一级片 | 狠狠撸在线视频 | 国产亚洲精品一区二区三区 | 成人午夜影院 | 久久一区二区三区四区 | 午夜精品久久久久久久久久久久久 | 日本精品一区二区三区视频 | 一级片免费视频 | 97精品国产 | 午夜影院普通用户体验区 | 亚洲欧美综合 | 久久999| 成人高清在线 | 国产一区二区在线观看视频 | 日本小电影网站 | 欧美精品在线观看 | 日本成人免费观看 | 日本二区| 色综合色综合 |