문제

성능을 높이려면 iPhone 대상 설정에서 "엄지손가락용 컴파일"을 끄는 것이 좋은 생각일 수 있다고 들었습니다.그런데 이 설정을 찾는데 어려움을 겪고 있습니다.현재 프로젝트에서 찾을 수 없었기 때문에 새 프로젝트를 만들고(찾고 설정할 수 있는 곳) 파일을 여기에 복사하기로 결정했습니다(그리고 동시에 사용하고 있는 모든 라이브러리도 업데이트했습니다) ).

하지만 이제 이 새 프로젝트에서도 이 설정이 사라진 것 같습니다.어떤 SDK를 선택하든(시뮬레이터 또는 장치) 해당 설정은 대상 설정에 표시되지 않습니다!그러나 갑자기 "사용자 정의" 범주 아래에 GCC_THUMB_SUPPORT라는 변수가 있는 것 같습니다.이게 뭔가요?

새 타겟을 만들어 보았으나 해당 타겟에도 설정이 표시되지 않습니다(GCC_THUMB_SUPPORT도 표시되지 않음).

도움이 되었습니까?

해결책

gcc_thumb_support는 올바른 변수입니다. 썸 코드 생성을 비활성화하려면 NO로 설정하십시오.
일반적인 규칙은 코드가 부동 소수 인 경우 비활성화하는 것입니다. :)
그것에 대해 더 여기.

업데이트:
엄지 지침 세트를 위해 컴파일하는 조언 더 이상 유효하지 않습니다 (실제로 iPhone 3GS 이후).

다른 팁

컴파일러 설정 ( "GCC 4.2- 코드 생성", "GCC 4.2- 언어"등)은 활성 SDK가 장치로 설정된 경우 대상 정보 빌드 설정 창에만 나타납니다. -정의 된 "카테고리는 활성 SDK가 시뮬레이터 인 경우에만 나타납니다.

그렇습니다. 부동 소수점 수학 (예 : 부동 소수점 오디오 처리)을 다루는 경우 썸 컴파일을 비활성화하는 것이 성능에 큰 도움이 될 수 있습니다. 물론 다목적 마법 속도 업이 아니지만 (일부 상황에서는 엄지 손가락 통합 코드가 더 빨리 실행될 수 있음) 코드에 그런 종류의 병목 현상이있는 경우에만 썸 엄지 손가락이 유용하지 않을 것입니다.

"엄지 손가락으로 컴파일" ~해야 한다 아래에 있습니다 대상/정보 정보/GCC 4.2- 코드 생성. 존재하지 않으면 (그렇지 않으면 놀랄 것입니다) 사용자 정의 변수를 설정하십시오.

이것은 당신이 그것을 피하기 전에 이해해야 할 좁은 상황에서만 성능을 향상 시킨다는 것을 명심하십시오.

ARM의 표준 명령어 세트는 4바이트입니다."Compile for Thumb"을 사용하면 컴파일러는 2바이트 명령어를 사용할 수 있습니다.이로 인해 라이브러리는 훨씬 작아지지만 속도도 느려집니다(다소 논쟁의 여지가 있음).더 중요한 것은 ARMv6에서 실행하는 데 문제가 있다는 것입니다.우리의 경우 Monotouch에서 안정적인 출력을 생성할 수 없었습니다(MT4.0 알파에서 수정).Xcode에서는 Target을 클릭하고 Build 아래에서 "thumb"을 검색하여 설정을 찾을 수 있습니다.광산은 GCC 4.2 - 코드 생성에 속하지만 때로는 LVVM GCC 4.2에 속합니다.

Compile for Thumb

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