1

私はMonoTouchでアプリを構築しました - それはarm6とarm7の両方のデバイスで動作します.メモリの使用量にできるだけ注意を払い、arm7デバイスでは美しく動作します.Appleのインストゥルメントプログラムを介して実行しています.約 4MB の割り当てツールでの平均「ライブ バイト」。

ただし、arm6 デバイス (iPhone 3G、iPod touch 第 2 世代) では、代わりに約 22MB のメモリ使用量が表示されます。メモリ不足の警告が頻繁に表示され、明らかに最終的にクラッシュします。

3G デバイスと 3GS (arm7) デバイスでアプリのメモリ フットプリントが非常に大きくなる可能性があるビルド設定や、誰もが考えることができる特定のことはありますか? とにかくこれらのデバイスには十分なメモリがあるため、特にイライラします.

御時間ありがとうございます、

リアム

4

1 に答える 1

1

それは大きな違いです!

推測では、Apple の Instruments が使用されているメモリを (どちらかまたは両方の場合に)誤って報告しており、実際には、両方の実際のメモリ要件ははるかに近いということです。

この場合、古いarmv6デバイスは RAM が少なく、(RAM が多い) 新しいarmv7デバイスの前にメモリ不足の警告が表示されます。表示されている動作は正常である可能性があります。つまり、古いデバイスの限界に近づいている可能性があります。

これは、ビルド間で異なるバグまたはその他の構成 (たとえば、デバッグビルドとリリースビルド)である可能性もあります。問題の再現を試みることができるように、これを私たち (Xamarin) と共有 (またはテスト ケースを作成) していただけると助かります。

:

さまざまなデバイスで使用される単一のarmv6アプリケーションについて話していると思います。しかし、異なるビルド ( arm6用とarmv7またはファットアプリケーション用) を使用したとしても、これはネイティブ コードの生成にのみ影響します。そのため、バイナリ サイズに影響しますが、アプリケーションの実行時メモリ要件に (巨大な) 影響を与えるべきではありません。

于 2012-02-01T18:26:53.447 に答える