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

為Python正名:語言本身不是瓶頸,可能是外部資源出了問題

開發(fā) 開發(fā)工具 后端
Python 作為一種簡單、易于掌握的編程語言,雖然在使用過程中存在短板,但也受到很多人的青睞。

 Python 真的很慢嗎?這需要具體問題具體分析。和 C 等編譯型語言相比,Python 在處理數(shù)字方面速度確實很慢。這也從側(cè)面說明了 Python 中加速數(shù)字處理的庫(如 numpy)為什么如此重要了。

但是,Python 是不是在所有用例上都比其他編程語言慢呢?并非如此,如果了解一下為解決特定問題而優(yōu)化的許多 Python 庫的性能基準(zhǔn)測試,你就會發(fā)現(xiàn) Python 比編譯型語言做得好。以 FastAPI 性能基準(zhǔn)為例,F(xiàn)astAPI 是一個用于構(gòu)建 API 的現(xiàn)代、快速(高性能)的 web 框架,使用 Python 3.6+ 并基于標(biāo)準(zhǔn)的 Python 類型提示。Go 語言顯然比 Python 快,不過,F(xiàn)astAPI 在構(gòu)建 REST API 方面勝過了 Go 的一些庫:

Web 框架基準(zhǔn)測試,不包括 C++ 和 Java web 框架。

同樣,在比較 Dask(使用 Python 編寫)與 Spark(使用 Scala 編寫)處理數(shù)據(jù)密集型神經(jīng)成像 pipeline 時,結(jié)果表明這兩個引擎之間沒有實質(zhì)的性能差異。

代碼速度 VS 實用性

從實用的角度來看,在為日常工作選擇編程語言時,需要回答多個不同的問題。

(1) 問題 1:這種語言能夠可靠地解決多項業(yè)務(wù)問題嗎?

如果你只關(guān)心速度,那么不要用 Python,各種用例都有更快的替代方案。Python 的主要優(yōu)點在于可讀性、易用性和可解決大量問題。Python 可以作為粘合劑,將不同的系統(tǒng)、服務(wù)和用例連接在一起。

(2) 問題 2:你能找到足夠多懂這門語言的員工嗎?

Python 易于學(xué)習(xí)和使用,因此用戶數(shù)量不斷增長。以前使用 Excel 處理數(shù)字業(yè)務(wù)的用戶,現(xiàn)在可以很快學(xué)會用 Pandas 編寫代碼,從而學(xué)會在不依賴 IT 資源的情況下實現(xiàn)自給自足。同時,這也緩解了 IT 和分析部門的負擔(dān)。

如今,企業(yè)更容易找到會 Python、并能用這種語言維護 Spark 數(shù)據(jù)處理應(yīng)用程序的數(shù)據(jù)工程師,而不是用 Java 或 Scala 做同樣工作的人。許多組織在很多用例中逐漸轉(zhuǎn)向使用 Python,因為懂 Python 的員工更容易找到。

相比之下,一些公司迫切需要 Java 或 C# 開發(fā)人員來維護他們現(xiàn)有的應(yīng)用程序,但這些語言很難(需要數(shù)年才能掌握),而且對于新手程序員來說似乎沒有吸引力,他們可能使用更簡單的語言(如 Go 或 Python)在工作中掙到更多的錢。

(3) 問題 3:不同領(lǐng)域?qū)<抑g的協(xié)同效應(yīng)

如果你的公司使用 Python,那么業(yè)務(wù)用戶、數(shù)據(jù)分析師、數(shù)據(jù)科學(xué)家、數(shù)據(jù)工程師、后端和 web 開發(fā)人員、運維工程師甚至系統(tǒng)管理員很可能使用同一種語言。這將在項目中產(chǎn)生協(xié)同效應(yīng),來自不同領(lǐng)域的人可以一起工作并利用相同的工具。

數(shù)據(jù)處理的真正瓶頸是什么?

在平時的工作中,通常我們遇到的瓶頸不是語言本身,而是外部資源。讓我們看幾個例子。

(1) 示例 1:寫入關(guān)系型數(shù)據(jù)庫

當(dāng)以 ETL 方式處理數(shù)據(jù)時,最終我們需要將這些數(shù)據(jù)加載到某個集中的地方。雖然我們可以利用 Python 中的多線程,更快地將數(shù)據(jù)寫入某些關(guān)系型數(shù)據(jù)庫,但并行寫入次數(shù)的增加可能會使該數(shù)據(jù)庫的 CPU 容量達到極限。

這意味著 Python 具備并行化和加速操作的機制,但是關(guān)系型數(shù)據(jù)庫(受 CPU 核數(shù)的限制)有其局限性,僅通過更快的編程語言很難解決。

(2) 示例 2:調(diào)用外部 API

另一個例子是使用外部 REST API,以提取數(shù)據(jù)來滿足數(shù)據(jù)分析需求,這一案例中語言本身似乎并不是瓶頸。雖然我們可以利用并行加速來提取數(shù)據(jù),但這可能是徒勞的,因為許多外部 API 限制了在特定時間段內(nèi)發(fā)出請求的數(shù)量。因此,我們會故意讓腳本變慢,以確保不會超過 API 的請求限制:

  1. time.sleep(10) 

(3) 示例 3:處理大數(shù)據(jù)

從處理超大數(shù)據(jù)集的經(jīng)驗來說,無論用什么語言你都不能直接用筆記本內(nèi)存來負載大數(shù)據(jù)。這種情況下,你需要利用 Dask、Spark、Ray 等分布式處理框架。在使用單個服務(wù)器實例或者筆記本時,處理的數(shù)據(jù)量存在限制。

如果你想把實際的數(shù)據(jù)處理工作轉(zhuǎn)移到一個計算節(jié)點集群中,甚至使用 GPU 來加速計算,Python 恰好有一個龐大的框架生態(tài)系統(tǒng),使這個任務(wù)變得更容易:

  • 你是否想用 GPU 來加快數(shù)據(jù)科學(xué)的計算速度?使用 PyTorch、TensorFlow、Ray 或 Rapids(甚至 SQL - BlazingSQL)。
  • 你是否想加速 Python 代碼處理大數(shù)據(jù)的速度?使用 Spark(或 Databricks)、Dask 或 Prefect。
  • 你是否想加快數(shù)據(jù)分析的處理速度?使用快速的專用內(nèi)存列數(shù)據(jù)庫,通過使用 SQL 查詢確保高速處理。

此外,如果你需要協(xié)調(diào)、監(jiān)測計算節(jié)點集群上發(fā)生的數(shù)據(jù)處理,你有 Apache Airflow、Prefect 或 Dagster 等多個 Python 工作流管理平臺可供選擇,它們可以加速數(shù)據(jù) pipeline 的開發(fā)和維護。

順帶提一下,一些人可能會抱怨 Python 沒有充分利用其能力或者未對手頭問題使用合適的數(shù)據(jù)結(jié)構(gòu)。

總而言之,如果你需要快速處理大量數(shù)據(jù),那你更需要的是計算資源而不是快速的編程語言,而且一些 Python 庫能夠輕松實現(xiàn)在數(shù)百個節(jié)點上的分布式工作。

原文鏈接:https://towardsdatascience.com/is-python-really-a-bottleneck-786d063e2921

【本文是51CTO專欄機構(gòu)“機器之心”的原創(chuàng)譯文,微信公眾號“機器之心( id: almosthuman2014)”】 

戳這里,看該作者更多好文

 

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2020-10-19 13:35:07

機器學(xué)習(xí)人工智能開發(fā)

2018-04-22 07:53:11

區(qū)塊鏈臉書隱私

2017-05-22 23:41:04

2017-10-17 12:43:17

前端CSS布局

2017-05-15 12:58:00

編程javaapl

2017-11-06 16:06:05

大數(shù)據(jù)Hadoop打開方式

2021-07-14 08:31:08

Java反射機制Class類

2012-08-30 09:44:27

2022-07-12 15:23:38

勒索軟件網(wǎng)絡(luò)攻擊

2021-03-01 14:16:13

Python開發(fā)Excel

2019-03-20 05:03:29

物聯(lián)網(wǎng)建筑數(shù)據(jù)

2017-06-26 10:18:43

2025-01-16 15:44:04

2021-08-27 10:14:22

機器學(xué)習(xí)工具手冊人工智能

2021-06-28 08:39:04

外包職位企業(yè)

2020-03-05 15:12:51

數(shù)據(jù)分析人工智能運營

2022-05-13 23:35:19

Java編程語言開發(fā)

2020-11-23 08:21:02

CTO交流學(xué)習(xí)

2019-04-28 11:06:01

Hbase架構(gòu)程序員

2018-09-27 10:20:41

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 天天操夜夜操 | 亚洲精品视频网站在线观看 | 91精品国产综合久久久久久丝袜 | 女同久久另类99精品国产 | 国产一区二区三区久久久久久久久 | 国产精品色 | 亚洲午夜精品 | 成人免费视频在线观看 | 日韩欧美久久 | 亚洲综合精品 | 国产精品日韩一区二区 | 久久久久久久久国产成人免费 | 成人精品在线观看 | 欧美久久精品一级c片 | 精品欧美一区二区精品久久久 | 国产精品久久久久不卡 | 日韩欧美日韩在线 | аⅴ资源新版在线天堂 | 久久丝袜 | 国产视频91在线 | 在线看一区二区三区 | 国产精品一区二区三区四区 | 国产综合久久久久久鬼色 | 亚洲精品一区二区在线观看 | 中文精品视频 | a级片在线观看 | 天天av综合 | 亚洲精品免费视频 | 成人久草| 成人精品久久 | 97国产精品视频人人做人人爱 | 国产精品区一区二 | 在线看av网址 | www.国产.com| 日韩一级黄色片 | 国产精品国产a级 | 亚洲综合三区 | 性高湖久久久久久久久3小时 | 97久久精品午夜一区二区 | 午夜电影网址 | av网站在线看 |