문제

나는 항상 Python의 장점은 코드 판독 및 개발 속도라고 생각했지만 시간과 메모리 사용은 C ++의 것만 큼 좋지 않았습니다.

이 통계 나를 정말 힘들게 쳤다.

귀하의 경험은 Python vs C ++ 시간 및 메모리 사용에 대해 무엇을 말합니까?

도움이 되었습니까?

해결책

나는 당신이 그 통계를 잘못 읽고 있다고 생각합니다. 그들은 파이썬이 최대 약 400 번이라는 것을 보여줍니다. 느리게 C ++보다 단일 케이스를 제외하고 Python은 메모리 호그에 가깝습니다. 그러나 소스 크기에 관해서는 파이썬이 평평하게 승리합니다.

Python에 대한 나의 경험은 심각한 숫자 위기를 할 때 Python이 C ++보다 10 ~ 100 배 더 느린 순서에있는 것과 동일한 확실한 경향을 보여줍니다. 주요 이유는 여러 가지가 있습니다. 주요 이유는 다음과 같습니다. a) 파이썬은 해석되고 C ++는 편집됩니다. b) 파이썬에는 프리미티브가 없으며, 내장형 유형 (int, float 등)을 포함한 모든 것은 물체입니다. c) 파이썬 목록은 다른 유형의 객체를 보유 할 수 있으므로 각 항목은 해당 유형에 대한 추가 데이터를 저장해야합니다. 이들은 모두 런타임과 메모리 소비를 심각하게 방해합니다.

그래도 파이썬을 무시할 이유는 아닙니다. 많은 소프트웨어는 100 시간 속도가 느리게있는 경우에도 많은 시간이나 메모리가 필요하지 않습니다. 개발 비용은 파이썬이 단순하고 간결한 스타일로 승리하는 곳입니다. 개발 비용에 대한 이러한 개선은 종종 추가 CPU 및 메모리 리소스 비용보다 중요합니다. 그러나 그렇지 않으면 C ++가 승리합니다.

다른 팁

총격전에서 가장 느린 (> 100x) 파이썬 사용은 높은 GFLOP/S 카운트가 필요한 과학 작업입니다. 어쨌든 파이썬을 사용해서는 안됩니다. Python을 사용하는 올바른 방법은 해당 계산을 수행하는 모듈을 가져온 다음 가족과 함께 편안한 오후를 보내는 것입니다. 저것 Pythonic 방법입니다 :)

내 경험은 벤치 마크와 동일합니다. 파이썬은 느리고 더 많은 메모리를 사용할 수 있습니다. 나는 훨씬 적은 코드를 작성하고 훨씬 적은 디버깅으로 처음으로 작동합니다. 그것이 나를 위해 메모리를 관리하기 때문에, 나는 메모리 관리를 수행 할 필요가 없어서 코어 누출을 쫓는 시간을 절약 할 필요가 없습니다.

질문이 뭐야?

소스 크기는 실제로 측정하기에 합리적인 것이 아닙니다. 예를 들어, 다음 쉘 스크립트 :

cat foobar

파이썬 또는 C ++ 등가물보다 훨씬 짧습니다.

또한: PSYCO 대 C ++.

어쨌든 숫자가 많은 물건을하는 것은 어쨌든 순수한 파이썬에 초점을 맞추는 경향이 있기 때문에 여전히 나쁜 비교입니다. 더 나은 것은 현실적인 응용 프로그램의 성능 또는 C ++ 대 Numpy의 성능을 비교하여 프로그램이 눈에 띄게 느려질 지 여부를 알 수 있습니다.

여기서 문제는 두 가지 다른 문제를 해결하는 두 가지 언어가 있다는 것입니다. C ++를 어셈블러와 비교하는 것과 같습니다.

Python은 신속한 응용 프로그램 개발을위한 것이며 성능이 최소한의 관심사 일 때입니다.

C ++입니다 ~ 아니다 빠른 응용 프로그램 개발을 위해 C- 저수준 프로그래밍의 속도의 유산을 상속합니다.

이러한 통계는 Python이 훨씬 느리고 해당 벤치 마크에 더 많은 메모리를 사용한다는 것을 보여줍니다. 올바른 길을 읽고 있다고 확신합니까?

내 경험상, 주로 Python에 네트워크 및 파일 시스템 결합 프로그램을 작성하는 것은 Python이 중요한 방식으로 크게 느리지 않습니다. 그런 종류의 작업을 위해 그 혜택은 비용보다 중요합니다.

항상 관리되고 사용하기 쉬운 프로그래밍 언어와 같은 문제입니다. 느리게 (때로는 메모리를 먹는다).

이들은 처리보다는 제어 할 수있는 언어입니다. 이미지를 변환하기 위해 애플리케이션을 작성하고 Python을 사용해야한다면 모든 처리는 C ++로 작성되고 바인딩을 통해 Python에 연결될 수 있으며 인터페이스 및 프로세스 제어는 확실히 Python이 될 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top