3

MonoTouch と MonoDroid は、同じ C# からネイティブへのコンパイラと GC を使用するため、同じパフォーマンスを提供しますか? Mono がWindows でAOT コンパイル済みアセンブリを生成するために使用するのと同じコンパイラですか?

完全にプラットフォームに依存しない機能、たとえば JPEG デコーダーを記述した場合、両方のプラットフォームで同じ ARM6/7 コードが生成されますか?

4

1 に答える 1

4

いいえ。オプションによっては、生成されたコードがている可能性がありますが、まったく同じになることはありません。

iOS シミュレーターの MonoTouch は、Mono JIT (x86) を使用します。

AOT コンパイラを使用する iOS デバイス上の MonoTouch。デフォルトでは、Mono のものです。オプションで、LLVM ベースの AOT コンパイラを使用できます。それは、ARMv6、ARMv7、および/または (間もなく) ARMv7s になります。

MonoTouch のデフォルト GC は Boehm です。必要に応じてsgenを使用できます。また、追加のオプションとしてnewrefcount * オプションを使用できます。

Mono for Android は、エミュレーターとデバイスの両方で JIT を使用します (ほとんどのデバイスが ARM ベースであっても、すべてのデバイスが ARM ベースであるとは限りません)。また、デフォルトでsgenガベージ コレクタも使用します (実際、Java GC と共存する必要があるため、Boehm コレクタは使用できません)。

于 2012-10-16T19:47:55.493 に答える