Do MonoTouch和MonoDroid使用相同的C#到本機編譯器和GC,從而提供相同的性能? Mono用於在Windows上生成AOT-compiled程序集的編譯器是否相同?Do MonoTouch和MonoDroid是否爲這兩種平臺生成相同的ARM6/7代碼?
如果我寫一個完全獨立於平臺的功能,比如JPEG解碼器,它會產生兩個平臺相同的ARM6/7的代碼?
Do MonoTouch和MonoDroid使用相同的C#到本機編譯器和GC,從而提供相同的性能? Mono用於在Windows上生成AOT-compiled程序集的編譯器是否相同?Do MonoTouch和MonoDroid是否爲這兩種平臺生成相同的ARM6/7代碼?
如果我寫一個完全獨立於平臺的功能,比如JPEG解碼器,它會產生兩個平臺相同的ARM6/7的代碼?
否根據您的選擇,生成的代碼可能是類似但它永遠不會相同。
MonoTouch的在iOS模擬器使用單聲道JIT(86)。
的MonoTouch上使用AOT編譯iOS設備,默認情況下它是從單聲道的一個。您也可以選擇使用LLVM支持的AOT編譯器。這將是ARMv6,ARMv7和/或(很快)ARMv7s。
MonoTouch的默認GC是貝姆。您也可以選擇使用SGEN,併爲進一步的選擇,你可以使用newrefcount *選項。
Mono for Android在仿真器和設備上都使用JIT(並非所有設備都是基於ARM的,即使大多數都是)。它也默認使用垃圾收集器(實際上它不能使用Boehm收集器,因爲它需要與Java GC共存)。
謝謝你的回答!那麼,它在Android上使用JIT,因爲Android可以運行x86以及ARM,並且我們在編譯時不知道目標平臺? –
還有一個問題:我們可以在MonoMac和Windows上使用LLVM支持的AOT編譯器嗎? –
我自己回答第二個問題:http://www.mono-project.com/Mono_LLVM –