문제

가장 빠른 가능한 응용 프로그램을 생성하기 위해 컴파일러 최적화를 선택하고 싶습니다.

다음 중 어떤 설정을 true로 설정해야합니까?

  • 죽은 상점 제거
  • 기본 블록 및 기능 내에서 중복 표현식을 제거하십시오
  • 루프 유도 변수 및 강도 감소를 활성화합니다
  • 펜티엄 명령 스케줄링을 활성화합니다
  • 일반적인 내재 기능을 확장합니다
  • 점프를 최적화하십시오
  • 레지스터 변수를 사용하십시오

'가능한 가장 빠른 코드를 생성'옵션도 있습니다. 그러나 이것을 true로 설정하면 위의 모든 옵션이 여전히 False로 설정됩니다.

그래서 위의 옵션 중 하나가 신청서를 true로 설정하면 응용 프로그램의 속도를 높일 지 알고 싶습니다.

도움이 되었습니까?

해결책

그래서 위의 옵션 중 하나가 신청서를 true로 설정하면 응용 프로그램의 속도를 높일 지 알고 싶습니다.

나는 어떤 사람들이 이것에 대해 나를 미워할 것이라는 것을 알고 있지만 여기 아무도 당신에게 진실로 대답 할 수 없습니다. 프로그램이 있거나없는 프로그램을 시도해야합니다. 프로필 각각의 빌드 및 결과가 무엇인지 확인하십시오. 추측은 아무데도 아무도 얻지 못할 것입니다.

컴파일러는 이미 귀하의 허가를 받거나없이 큰 최적화의 톤 (!)을 수행합니다. 가장 좋은 방법은 깨끗하고 조직화 된 문제로 코드를 작성하고 유지 관리 및 확장성에 대해 걱정하는 것입니다. 내가 말하고 싶은대로 : 지금 코드, 나중에 최적화하십시오.

다른 팁

개별 최적화로 미세 관리하지 마십시오. 컴파일러 작가는 매우 똑똑한 사람들입니다. 구체적인 필요가 없다면 모든 것을 켜십시오. 컴파일러 옵션을 고민하는 대신 코드를 최적화 (기능의 알고리즘 복잡성 등을 개선 함)를 최적화하여 시간이 더 좋습니다.

다른 조언은 다른 컴파일러를 사용하십시오. 인텔은 최적화 컴파일러로 큰 명성을 가지고 있습니다. VC와 GCC는 물론 훌륭한 선택입니다.

다른 컴파일 옵션이있는 생성 된 코드를 볼 수있어 가장 빠른 옵션을 확인할 수 있지만 오늘날 많은 사람들 이이 일을 경험하지 못한다는 것을 이해합니다.

따라서 응용 프로그램을 프로필하는 것이 유용합니다. 속도가 필요한 명백한 부분이있는 경우 코드를 추가하여 1 천만 또는 천만 번 실행하고 사용하는 시간을 실행하십시오. utime() 사용할 수있는 경우. 루프는 간헐적으로 실행되는 다른 프로세스가 결과에 영향을 미치지 않을 정도로 오래 실행되어야합니다. 또는 여러 타이밍 시험을 실행하십시오. 다른 테스트 케이스를 컴파일하고 실행하여 가장 잘 작동하는 것을 확인하십시오.

최적화 옵션으로 1 ~ 2 시간을 보내면 대부분의 영향을 미치게됩니다. 그러나 알고리즘의 본질에 대해 생각하고 작은 변경을하는 (코드 제거가 특히 효과적 임)는 종종 크게 실행 시간을 개선합니다.

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