programing

파이썬을 컴파일하는 동안 --enable-optimization은 무엇을 합니까?

minimums 2023. 5. 8. 21:59
반응형

파이썬을 컴파일하는 동안 --enable-optimization은 무엇을 합니까?

팔 기반 리눅스 머신에서 파이썬 3.6을 컴파일하려고 하는데,./configure출력:

모든 최적화(LTO, PGO 등)가 활성화된 릴리스 빌드를 원한다면 실행하십시오../configure --enable-optimizations.

무엇인가.--enable-optimizations하십니까?

이 플래그는 PGO(Profile Guided Optimization) 및 LTO(Link Time Optimization)를 활성화합니다.

두 가지 모두 비용이 많이 드는 최적화로 빌드 프로세스 속도는 느려지지만 속도는 크게 향상됩니다(제가 읽은 내용에서 약 10-20%).

이것들이 정확히 무엇을 하는지에 대한 논의는 제가 아는 것 이상이며 아마도 한 가지 질문에 대해 너무 광범위할 것입니다.어느 쪽이든, 당신은 그것을 위한 구현이 있는 GCC의 문서에서 LTO에 대한 약간의 것을 읽을 수 있고 위키 페이지를 읽음으로써 PGO를 시작할 수 있습니다.

또한 Python Bug Tracker에서 다음과 같이 추가된 관련 문제를 참조하십시오.

  • 문제 24915: Profile Guided Optimization 개선 사항(더 나은 교육, llvm 지원 등)(PGO 추가)
  • 이슈 25702: GCC 및 CLANG에 대한 링크 시간 최적화 지원(LTO 추가)
  • 문제 26359: 즉시 사용할 수 있는 성능을 위한 Cython 빌드 옵션(추가:--enable-optimizations위에서 언급한 최적화를 활성화하는 구성 스크립트에 플래그를 지정합니다.)

@Shuo가 논평에서 지적하고 28032호에서 언급했듯이, LTO가 항상 활성화되는 것은 아닙니다.--enable-optimizations플래그. 일부 플랫폼(의 지원되는 버전에 따라 다름)은 구성 스크립트에서 플래그를 사용하지 않도록 설정합니다.

그러나 이 플래그의 향후 버전은 항상 활성화되므로 여기에서 두 가지 모두에 대해 이야기하는 것이 매우 안전합니다.

언급URL : https://stackoverflow.com/questions/41405728/what-does-enable-optimizations-do-while-compiling-python

반응형