CSV 檔案處理基準測試:Golang、NestJS、PHP、Python

WBOY
發布: 2024-08-12 22:34:02
原創
850 人瀏覽過

介紹

高效處理大型 CSV 檔案是許多應用程式中的常見要求,從資料分析到 ETL(提取、轉換、載入)過程。在本文中,我想對四種流行程式語言(Golang、帶有 NestJS 的 NodeJS、PHP 和 Python)在 MacBook Pro M1 上處理大型 CSV 檔案的效能進行基準測試。我的目標是確定哪種語言可以為該任務提供最佳效能。

測試環境

硬體:MacBook Pro M1,256GB SSD,8GB RAM

軟體:

  • macOS 索諾瑪 14.5
  • PHP 8.3.6
  • Golang 1.22.4
  • Node.js 22.0.0 與 NestJS
  • Python 3.12.3

測試數據

我使用了一個名為 sales_data.csv 的合成 CSV 文件,其中包含大約 100 萬行,每行包含交易詳細信息,例如 transaction_id、product_id、數量、價格和時間戳。

任務說明

對於每種語言,腳本執行以下任務:

  1. 讀取 CSV 檔案。
  2. 計算總銷售額。
  3. 辨識銷量最高的產品。

執行

以下是每種語言使用的腳本:

Go 語言腳本:

銷售.go

雷雷

NestJS腳本:

csv.service.ts

雷雷

csv.controller.ts

雷雷

PHP腳本

銷售.php

雷雷

Python腳本

雷雷

結果

以下是我們基準測試的結果:

戈蘭

  • 執行時間:466.69975ms
  • 總銷售額:$274654985.36
  • 頂級產品:產品 1126,銷售額 $305922.81

Benchmarking CSV File Processing: Golang vs NestJS vs PHP vs Python

NestJS

  • 執行時間:6.730134208秒
  • 總銷售額:$274654985.36000216
  • 頂級產品:1126,銷售額 $305922.8099999997

Benchmarking CSV File Processing: Golang vs NestJS vs PHP vs Python

PHP

  • 執行時間:1.5142710208893秒
  • 總銷售額:$274654985.36
  • 頂級產品:1126 銷售額 $305922.81

Benchmarking CSV File Processing: Golang vs NestJS vs PHP vs Python

Python

  • 執行時間:2.56秒
  • 總銷售額:$274654985.36
  • 頂級產品:1126 銷售額 $305922.81

Benchmarking CSV File Processing: Golang vs NestJS vs PHP vs Python

分析

我的基準測試揭示了一些有趣的見解:

執行時間:Golang 在執行時間方面表現最好,PHP8 緊隨其後,而 NestJS 完成任務的時間最長。
記憶體使用:Build NestJS 表現出高效的記憶體使用,而 Python 表現出更高的記憶體消耗。
易於實現:Golang 提供了最簡單的實現,而 NestJS 需要更多的程式碼行和複雜性。

結論

根據我的發現,Golang 提供了最佳的效能速度和記憶體效率,使其成為處理大型資料集的絕佳選擇。

完整程式碼

您可以在我的 Github 儲存庫上取得完整程式碼
csv-解析-戰鬥.

以上是CSV 檔案處理基準測試:Golang、NestJS、PHP、Python的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!