1

動画を扱うアプリを作成しました。ご存知のように、ビデオ処理はHD解像度を処理する際に大量のメモリを消費します。私のアプリはいつもクラッシュしているようでした。しかし実際には、コードにメモリリークがないことを100%確信しています。機器は漏れを示していません。

最初は、1つのOpenGLESビューとビデオエンジンを起動しています。非常に短い間、メモリ消費量は多くなりますが、初期化が完了すると通常のレベルに低下します。この期間中、私は常にメモリ警告を受け取ります。通常、これは問題ありません。しかし、一時停止モードで実行しているアプリがたくさんある場合、アプリがクラッシュしているようです。クラッシュログを監視し、デバッガーを使用すると、メモリが不足しているだけであることがわかります。

私の顧客は私のサポートメールを「アプリがクラッシュしています」というメールで溢れさせています。しかし、バックグラウンドで実行されているアプリが多すぎるため、メモリが残っていないことは知っています。アプリを実行する前にバックグラウンドタスクを閉じる必要があると顧客に言うのは悪いスタイルのプログラミングだと思います。

この投稿によると、これは一般的な問題です。

私の質問は次のとおりです。OSに大量のメモリが必要であるため、OSが一時停止中のアプリを終了する必要があることをOSに伝えることはできますか?それは私が修正できるバグではないので、このメモリのものは私を夢中にさせます。

4

1 に答える 1

1

いいえ。API呼び出しなしでサンドボックスの外部に影響を与えることはできません。パブリックAPIの他のプロセスに影響を与えるものはありません。

メモリ使用量を最小限に抑えようとしましたか?私の経験では、一度メモリ警告がスローされたアプリは、メモリ使用量が低下した場合でも、バックグラウンドに入ると問題が発生する可能性が高くなります。

OpenGLESとテクスチャを使用している場合、テクスチャをまだ圧縮していない場合。メモリ割り当ての急増の具体的な原因は何ですか?

于 2011-10-25T14:34:17.437 に答える