CSV 파일 처리 벤치마킹: Golang, NestJS, PHP, Python

WBOY
풀어 주다: 2024-08-12 22:34:02
원래의
856명이 탐색했습니다.

소개

대용량 CSV 파일을 효율적으로 처리하는 것은 데이터 분석부터 ETL(추출, 변환, 로드) 프로세스에 이르기까지 많은 응용 프로그램의 일반적인 요구 사항입니다. 이 기사에서는 MacBook Pro M1에서 대용량 CSV 파일을 처리할 때 인기 있는 4가지 프로그래밍 언어인 Golang, NodeJS와 NestJS, PHP 및 Python의 성능을 벤치마킹하고 싶습니다. 저는 어떤 언어가 이 작업에 가장 적합한 성능을 제공하는지 결정하는 것을 목표로 합니다.

테스트 환경

하드웨어: MacBook Pro M1, 256GB SSD, 8GB RAM

소프트웨어:

  • macOS 소노마 14.5
  • PHP 8.3.6
  • 고랭 1.22.4
  • Node.js 22.0.0(NestJS 포함)
  • 파이썬 3.12.3

테스트 데이터

저는 약 100만 개의 행이 있는 sales_data.csv라는 합성 CSV 파일을 사용했습니다. 각 행에는 transaction_id, product_id, 수량, 가격, 타임스탬프와 같은 거래 세부정보가 포함되어 있습니다.

작업 설명

각 언어에 대해 스크립트는 다음 작업을 수행합니다.

  1. CSV 파일을 읽습니다.
  2. 총 판매 금액을 계산합니다.
  3. 판매가 가장 높은 제품을 식별합니다.

구현

각 언어에 사용되는 스크립트는 다음과 같습니다.

골랭 스크립트:

sales.go

으아악

NestJS 스크립트:

csv.service.ts

으아악

csv.controller.ts

으아악

PHP 스크립트

sales.php

으아악

파이썬 스크립트

으아악

결과

벤치마크 테스트 결과는 다음과 같습니다.

골랑

  • 실행 시간: 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

파이썬

  • 실행 시간: 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 학습자의 빠른 성장을 도와주세요!