2012-06-22 3 views
1

안드로이드 플랫폼 용 모노 (또는 계획된 것)에 대한 AOT 컴파일 옵션이 있는지 궁금합니다. 안드로이드 용 모노를 사용하여 게임을 포팅하고 퍼포먼스가 중요하기 때문에 AOT 컴파일이 가능한지 (또는 더 나은 퍼포먼스를 생성 할 수있는 다른 컴파일 옵션) 알고 싶었던 이유가 여기에 있습니다. Monotouch는 AOT 컴파일을 사용하며 선택적으로 최적화를 위해 컴파일러로 llvm을 사용할 수 있습니다. 그래서, 같은 옵션이 안드로이드 용 모노에서 사용 가능한지 궁금합니다.안드로이드 용 모노에서 AOT (ahead of time) 컴파일이 가능합니까?

답변

0

AOT는 안드로이드 모노에서 사용할 수 없습니다 사전에

덕분에, 나는 그것이 어느 도로지도를 생각하지 않습니다.

JIT는 코드를 최적화하기 위해 실행되는 환경에 대해 알고있는 정보를 사용할 수 있기 때문에 JIT가 AOT보다 속도가 느리지는 않습니다. AOT 컴파일러는 동일한 환경에 대한 모든 것을 알 수 없습니다.

이 스레드 : Why is Java faster when using a JIT vs. compiling to machine code?에는 이에 대해 자세히 설명하는 답변이 있습니다.

그래서 AOT 컴파일러가 있으면 성능 향상을 얻을 수 있을지 의심 스럽습니다.

+0

재미있는 스레드이지만 JIT **는 빠를 수 있지만 빠르지는 않습니다. [Miguel de Icasa post] (http://tirania.org/blog/)를 보면 "JIT가 더 빠를 수 있습니까?" 특히 : JIT 컴파일러는 생성 된 코드의 품질보다 빠르게 컴파일하는 경향이 있습니다 ... LLVM에서 C를 사용합니다. 코드 성능을 향상시킬 가능성이 있음을 알 수 있습니다 (JIT가 빠르면 , 나는 옵션을 사용할 수있을 것 같아요) – user1475827

+0

내 질문에 나는 [모노에 대한 이러한 슬라이드] (http : // tirania)를 보면 코드 성능 (AOT뿐만 아니라)을 향상시킬 수있는 것을 요구하고있었습니다. org/slides/AltDevConf-2012-Mono.pdf), -O = unsafe를 사용하면 일부 배열 범위 검사를 사용하지 않도록 설정하여 성능을 향상시킬 수있는 "배열 경계 검사 사용 안 함"슬라이드 상태가됩니다. 안드로이드 용 mono에 대해서는이 추적을 볼 수 없습니다. Android 용 mono에서 찾을 수없는 [SIMD instructions] (http://tirania.org/blog/archive/2008/Nov-03.html)에 대한 것입니다. 이것이 이유입니다. 나는 로드맵에 뭔가가 있는지 궁금해하고 있었다. – user1475827

관련 문제