더 나은/최신 C 또는 C++ 컴파일러가 더 나은 성능의 컴파일 코드를 생성합니까? 아니면 컴파일하는 동안 더 빠르고 더 나은 성능을 발휘합니까?

더 나은/최신 C 또는 C++ 컴파일러가 더 나은 성능의 컴파일 코드를 생성합니까? 아니면 컴파일하는 동안 더 빠르고 더 나은 성능을 발휘합니까?

나는 C나 C++ 프로그래머는 아니지만 일부 R 패키지처럼 컴파일이 필요하거나 컴파일러에 의존하는 소프트웨어를 자주 사용합니다.

더 새롭고 더 나은 컴파일러를 사용하면 해당 소프트웨어가 실제로 더 나은 성능을 발휘할 수 있습니까? 예를 들어, 저는 지금 Mac OS X 시스템 버전의 Clang을 사용하고 있는데 대신 최신 버전을 사용하라는 제안을 받았습니다. 그것은 단지 컴파일하는 동안 시간과 메모리를 절약하기 위한 제안인가요? 아니면 실제로 더 효율적인 컴파일된 소프트웨어를 생산하게 될까요?

답변1

더 새롭고 더 나은 컴파일러를 사용하면 해당 소프트웨어가 실제로 더 나은 성능을 발휘할 수 있습니까?

이는 전적으로 특정 릴리스에서 컴파일러의 코드 최적화 기능에 대한 작업이 수행되었는지 여부에 따라 달라집니다.

예를 들어, 저는 지금 Mac OS X 시스템 버전의 Clang을 사용하고 있는데 대신 최신 버전을 사용하라는 제안을 받았습니다.

최신 버전에만 존재하는 기능이 필요하지 않은 한 작동하는 것과 동일한 컴파일러 버전을 사용해야 합니다. 최신 버전이 더 효과적인 기능을 수행한다는 사실을 알지 않는 한 업그레이드하지 마십시오.

그것은 단지 컴파일하는 동안 시간과 메모리를 절약하기 위한 제안인가요?

이 제안은 솔직히 100% 의견에 근거한 것 같습니다. 이 제안을 제공한 사람을 신뢰한다면 이를 받아들여야 합니다.

컴파일러는 소프트웨어이며 최신 버전에서는 최적화 루틴에서 최악의 성능을 초래하는 새로운 버그가 발생할 수 있다는 점을 지적해야 합니다. 이를 수행하는 가장 좋은 방법은 항상 안정적인 릴리스 빌드를 사용하는 것입니다.

관련 정보