Ticket #25304

FFmpegライブラリモードでのOutOfMemoryError対策

Date d'ouverture: 2011-05-29 00:06 Dernière mise à jour: 2011-06-01 22:40

Rapporteur:
Propriétaire:
(Aucun)
Type:
État:
Ouvert
Composant:
(Aucun)
Jalon:
(Aucun)
Priorité:
5 - moyen
Sévérité:
5 - moyen
Résolution:
Aucun
Fichier:
Aucun

Détails

  • ByteBuffer#allocDirectだとメモリの断片化により弱いかもしれない→音バッファの方で使用するのはやめるか、手軽に実装を切り替えられるようにしておく
  • リストメニューはそれなりにメモリ消費→onStopになったら一部のメンバはSoftReferenceに保存し直して、次のonStartで消えているのに気づいたら改めてネットワーク等から取得し直す
  • チケット #25124 サムネイルをキャッシュファイルで保存 を実施し、メンバのBitmapはSoftReferenceにして消えやすくしておく

Ticket History (3/4 Histories)

2011-05-29 00:06 Updated by: shisei123
  • New Ticket "FFmpegライブラリモードでのOutOfMemoryError対策" created
2011-05-31 20:19 Updated by: shisei123
  • Priorité Update from 5 - moyen to 7
2011-06-01 00:38 Updated by: shisei123
Commentaire

十分に空き容量があるのにOutOfMemoryErrorが発生することから考えるに、本格的にメモリの断片化が問題の模様。

  • BitmapのメモリがGCでの再配置できないものと仮定して、メモリ不足時のサムネイルの開放を優先的に進める。
  • 1回目の再生は多くの場合において問題が出ないので、多めにバッファを取っておいて分割と再利用を試みる?→動画毎に解像度が違うことと、Bitmapの特性からしてByteBufferは別々に作らないと不都合が出る
  • プレイヤーのActivityを別processにすることでメモリ管理を別々に出来ないか試す
2011-06-01 22:40 Updated by: shisei123
  • Priorité Update from 7 to 5 - moyen
Commentaire

SVN: rev 247で以下の対応

  • プレイヤーのActivityを別プロセスに分ける
  • リストメニューで不要なメモリをなるべく開放しやすくした(つもり。期待したほどには動作していない?)

以下は対策せずそのまま

  • 音バッファはByteBuffer#allocDirectでメモリを確保したままで(別プロセス化が効果を上げたため)
  • 一括メモリ確保はしない

Attachment File List

No attachments

Modifier

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Connexion