저는 항상 Python의 장점이 코드 가독성과 개발 속도라고 생각했지만 시간과 메모리 사용량은 C ++만큼 좋지 않았습니다.
이 통계 는 저에게 정말 충격적이었습니다.
귀하의 경험은 Python 대 C ++ 시간 및 메모리 사용량에 대해 무엇을 알려 줍니까?
저는 항상 Python의 장점이 코드 가독성과 개발 속도라고 생각했지만 시간과 메모리 사용량은 C ++만큼 좋지 않았습니다.
이 통계 는 저에게 정말 충격적이었습니다.
귀하의 경험은 Python 대 C ++ 시간 및 메모리 사용량에 대해 무엇을 알려 줍니까?
답변:
그 통계를 잘못 읽는 것 같습니다. 그들은 파이썬이 최대 약 400 배 느리다 는 것을 보여줍니다 C ++보다 , 단 하나의 경우를 제외하고 파이썬은 메모리를 많이 . 그러나 소스 크기에 관해서는 Python이 우세합니다.
Python에 대한 제 경험은 심각한 숫자 처리를 할 때 Python이 C ++보다 10 ~ 100 배 정도 느리다는 것과 동일한 확실한 추세를 보여줍니다. 여기에는 여러 가지 이유가 있습니다. 주요 이유는 다음과 같습니다. a) Python은 해석되고 C ++는 컴파일됩니다. b) 파이썬에는 프리미티브가 없으며 내장 유형 (int, float 등)을 포함한 모든 것이 객체입니다. c) 파이썬 목록은 다른 유형의 객체를 보유 할 수 있으므로 각 항목은 해당 유형에 대한 추가 데이터를 저장해야합니다. 이것들은 모두 런타임과 메모리 소비를 심각하게 방해합니다.
이것은 파이썬을 무시할 이유가 아닙니다. 많은 소프트웨어는 100 배 속도 저하 요인에도 많은 시간이나 메모리를 필요로하지 않습니다. 개발 비용은 Python이 간단하고 간결한 스타일로 승리하는 곳입니다. 이러한 개발 비용 개선은 종종 추가 CPU 및 메모리 리소스 비용보다 큽니다. 그러나 그렇지 않으면 C ++이 승리합니다.
numpy
and 를 광범위하게 사용하더라도 scipy
대규모 python
코드베이스는 순수한 파이썬으로 많은 코드를 포함 할 가능성이 높기 때문에 C++
. 파이썬 스크립트 는 더 이상 파이썬 스크립트가 아닌 코드 C++
의 비율이로 C
갈 때 스크립트 의 속도에 접근합니다 100
. 파이썬은 확실히 떠오르고 있지만 C++
사용하기 쉽기 때문에 빠르기 때문이 아닙니다 .
총격전에서 가장 느린 (> 100x) Python 사용은 모두 높은 GFlop / s 카운트가 필요한 과학적 작업입니다. 어쨌든 파이썬을 사용해서는 안됩니다. 파이썬을 사용하는 올바른 방법은 이러한 계산을 수행하는 모듈을 가져온 다음 가족과 함께 편안한 오후를 보내는 것입니다.그것이 파이썬적인 방법입니다 :)
소스 크기는 실제로 측정하기에 합리적이지 않습니다. 예를 들어, 다음 쉘 스크립트 :
cat foobar
Python 또는 C ++ 등가물보다 훨씬 짧습니다.
cat footer
.
또한 : Psyco 대 C ++ .
그것은 여전히 나쁜 비교입니다. 왜냐하면 아무도 numbercrunchy 작업을하지 않을 것이기 때문입니다. 벤치 마크는 어쨌든 순수 파이썬에서 집중하는 경향이 있습니다. 더 나은 방법은 실제 응용 프로그램의 성능 또는 C ++와 NumPy를 비교하여 프로그램이 눈에 띄게 느려질 지 여부를 파악하는 것입니다.
항상 그렇듯이 관리되고 사용하기 쉬운 프로그래밍 언어와 동일한 문제입니다. 느리고 때로는 메모리를 소모합니다.
이들은 처리가 아닌 제어를 수행하는 언어입니다. 이미지를 변환하기 위해 애플리케이션을 작성해야하고 Python도 사용해야한다면 모든 처리를 C ++로 작성하고 바인딩을 통해 Python에 연결할 수 있으며 인터페이스 및 프로세스 제어는 분명히 Python이 될 것입니다.
이 통계는 Python이 훨씬 느리고 벤치 마크에 더 많은 메모리를 사용한다는 것을 보여줍니다. 올바른 방법으로 읽는 것이 확실합니까?
내 경험상 대부분 Python으로 네트워크 및 파일 시스템 바인딩 프로그램을 작성하는 데있어 Python은 어떤 식 으로든 크게 느리지 않습니다. 그런 종류의 작업에서는 비용보다 이점이 더 큽니다.