동적 명령 스케줄링과 같은 CPU 설계의 발전으로 인해 스 플랫 컴파일러에서 생성 된 코드와 컴파일러 최적화에 따른 성능 차이가 좁아졌습니다. 요즘에는 컴파일러가 더 어리석은 상태로 빠져 나갈 수 있습니까?스 플랫 컴파일러에 의해 생성 된 코드의 상대적 성능
1
A
답변
2
반대로 최적화 컴파일러는 최신 CPU에 대해 더 많은 것을 얻습니다. 자동 벡터화는 코드를 몇 배 빠르게 만듭니다. 현대 지침 세트는 또한 최적화 기회를 제공합니다 (예 : x86의 조건부 분기 대신 CMOV 사용).
성능 차이가 좁혀지는 일부 영역이 있습니다. CPU는 함수 호출을 더 빨리 수행하므로 함수 인라이닝은 이전만큼 유익하지 않을 수 있습니다. 루프 풀기는 때때로 코드를 조금 느리게 만듭니다. 그러나 대부분의 경우 컴파일러 최적화와 CPU 최적화는 서로 직교합니다. CPU는 루프 퓨전 또는 공통 서브 표현식 제거를 수행 할 수 없습니다. 컴파일러는 동적 명령어 스케줄링, 분기 예측 또는 데이터 프리 페치에 대한 좋은 대안을 제공 할 수 없습니다.
관련 문제
- 1. SOAP2ObjC에 의해 생성 된 코드의 문제점
- 2. Objective-C : 컴파일러에 의해 최적화 된 변수
- 3. lex 및 yacc에 의해 생성 된 코드의 함수 사용
- 4. C++ 메타 - 스 플랫 함수
- 5. 제네릭은 JIT 컴파일러에 의해 어떻게 컴파일됩니까?
- 6. 다트에서 생성 된 코드의 가독성
- 7. GUID를 == 널은 컴파일러에 의해 허용되지 않아야
- 8. WP7 용 ConnectionSettingsTask가 컴파일러에 의해 해결되지 않습니다.
- 9. iHasApp.a 프레임 워크가 컴파일러에 의해 감지되지 않았습니다.
- 10. 어떤 연산 작업이 컴파일러에 의해 수행됩니까?
- 11. 노드 env에 첨부 된 js 코드의 성능
- 12. 내장 된 크기 함수와이 코드의 성능 차이
- 13. GWT에 의해 생성 된 절대 위치 제거
- 14. 도움이 생성 된 어셈블리 코드의 부분을 이해하십시오
- 15. 동적으로 생성 된 유형의 성능
- 16. Xcode에 의해 생성 된 정적 라이브러리의 크기
- 17. 이 코드의 성능 문제
- 18. 동적으로 생성 된 iframe에 HTML 스 니펫로드
- 19. non-gnu 컴파일러에 대한 의존성 생성
- 20. 동적으로 생성 된 코드의 구문을 확인하십시오. #
- 21. 생성 된 코드의 결과 표시 안 함
- 22. Xcode에서 생성 된 소스 코드의 저작권을 제거하십시오.
- 23. ANTLR에서 생성 된 Java 코드의 값을 반환하십시오.
- 24. GWT 생성 된 자바 코드의 디버그 /보기
- 25. SaveChanges 쿼리 생성 성능
- 26. 성능 통화 가치에 의해 호출에 의해 이름
- 27. 목록 상자에 의해 datatemplate에 의해 생성 된 루프 항목
- 28. ggplot2에 의해 생성 된 조각 잘라내 기
- 29. 활동에서 WebView에 의해 생성 된 데이터에 액세스합니다.
- 30. JDBC에 의해 생성 된 SQL 문 수정