2012-10-16 6 views
3

MonoTouch와 MonoDroid는 동일한 C# -to-native 컴파일러와 GC를 사용하므로 동일한 성능을 제공합니까? Mono가 Windows에서 AOT-compiled 어셈블리를 생성하는 데 사용하는 컴파일러와 동일한 컴파일러입니까?MonoTouch와 MonoDroid는 두 플랫폼 모두에서 동일한 ARM6/7 코드를 생성합니까?

완전히 플랫폼 독립적 인 기능, 예를 들어 JPEG 디코더를 작성하면 두 플랫폼 모두에서 동일한 ARM6/7 코드가 생성됩니까?

답변

4

아니요. 옵션에 따라 생성 된 코드는 과 비슷할 수 있지만 일 수는 있지만 절대 동일하지는 않습니다.

iOS 시뮬레이터의 MonoTouch는 Mono JIT (x86)를 사용합니다.

AOT 컴파일러를 사용하는 iOS 장치의 MonoTouch는 기본적으로 Mono의 것입니다. 선택적으로 LLVM 지원 AOT 컴파일러를 사용할 수 있습니다. 그것은 ARMv6, ARMv7 및/또는 (곧) ARMv7이 될 것입니다.

MonoTouch 기본 GC는 Boehm입니다. 선택 사항으로 sgen을 사용할 수 있으며, 추가 옵션으로 newrefcount * 옵션을 사용할 수 있습니다.

안드로이드 용 모노는 에뮬레이터와 장치 모두에서 JIT를 사용합니다 (대부분의 장치는 대부분 ARM 기반입니다). 또한 기본적으로 sgen 가비지 수집기를 사용합니다 (실제로 Java GC와 공존해야하므로 Boehm 수집기를 사용할 수 없습니다).

+0

답변 해 주셔서 감사합니다. 그래서 안드로이드는 ARM뿐만 아니라 x86을 돌릴 수 있고 컴파일시 타겟 플랫폼을 모르기 때문에 안드로이드에서 JIT를 사용합니까? –

+0

한 가지 더 질문 : MonoMac과 Windows에서 LLVM 지원 AOT 컴파일러를 사용할 수 있습니까? –

+0

자신이 답변 한 두 번째 질문 : http://www.mono-project.com/Mono_LLVM –