2013-03-13 2 views
1

rpm (또는 yum)과 소스에서 컴파일 된 Python 인터프리터간에 설치할 수있는 Python 인터프리터간에 문서화 된 성능 차이가 있는지 알고 싶습니다. 컴파일을위한 선험적으로 설정된 플래그가있는).패키지의 파이썬과 소스에서 컴파일 된 파이썬의 성능 차이

Redhat 6.3 머신을 Django/Apache/Mod_WSGI 프로덕션 서버로 사용하고 있습니다. 나는 이미 서로 다른 설정과 다른 명령으로 모든 것을 적절히 편집했다. 그러나, 나는 보통 그러한 머신에서 build-dev 의존성을 유지한다. 다양한 자존심 관련 (및 다소 실용적인) 이유로 Python-2.7.3을 사용하고 싶습니다. 기본적으로 Redhat은 Python-2.6.6과 함께 제공됩니다. 나는 내가 그것과 함께 갈 수 있었다라고 생각한다. 그러나 그것은 어떻게 든 나에게 상처를 줄 것이다 (나는 놓아야 할 것이고, 약간의 도서관과 나의 자아를위한 치환을 발견 할 것이다).

그러나 자존심과 의존성 외에도 장고 서버의 성능면에서 어떤 영향을 미치는지 알고 싶습니다.

답변

4

RPM 버전을 컴파일하는 데 사용 된 플래그와 정확히 동일한 플래그로 컴파일하면 정확히 동일한 속도의 바이너리가 생성됩니다. 그리고 RPM의 spec 파일을보고 플래그를 얻을 수 있습니다.

그러나 때로는 을 미리 빌드 된 버전보다 할 수 있습니다. 예를 들어 컴파일러가 "일반 386 호환"(또는 RPM이 최적화 된 경우) 대신 특정 CPU에 맞게 최적화 할 수 있습니다. 물론 당신이 무엇을하고 있는지 (또는 의도적으로 그것을하는지) 모르겠다면, 미리 만들어진 버전보다 느린 것을 만들 수도 있습니다.

한편 2.7.3은 2.6.6보다 약간의 영역에서 더 빠릅니다. 그들 중 대부분은 보통 당신에게 영향을 미치지 않을 것입니다,하지만 그렇게한다면 그들은 아마도 큰 승리가 될 것입니다.

마지막으로 대다수의 Python 코드의 경우 Python 인터프리터 자체의 속도는 전반적인 성능이나 확장성에 관련이 없습니다. (그렇다면 파이썬, 자이 썬 또는 아이언 파이썬을 CPython으로 대체하려고 할 것이다.) 이것은 특히 WSGI 서비스에 해당된다. 느린 일을하지 않으면 아파치가 병목 현상이 될 수 있습니다. 이라면 속도가 느려지는데, 아마도 I/O 바운드이고 Python의 제어 밖에 있습니다 (파일 읽기와 같은).

궁극적으로 얻을 수있는 이익의 양을 알 수있는 유일한 방법은 방법 및 성능 테스트를 모두 시도하는 것입니다. 그러나 단지 엄지 손가락을 원한다면 나는 0 %의 이득을 기대하며 운이 좋으면 놀랄 것입니다.

+0

IronPython은 Windows 용입니다. – LtWorf

+0

@LtWorf : 아니요, Mono를 포함한 모든 .NET 런타임 용입니다. 나는 리눅스 박스와 맥에서 지금 실행 중이다. (그리고 내 리눅스 박스에서 메인 repo에서 가져 오기 위해'apt-get install ironpython'을 실행했습니다!) – abarnert

+0

왜 그렇게 했습니까? 내가 증명 한 것을 제외하고는. – LtWorf