Tíquete #25304

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

: 2011-05-29 00:06 Última Atualização: 2011-06-01 22:40

Relator:
Dono:
(Nenhum)
Tipo:
Estado:
Aberto
Componente:
(Nenhum)
Marcos:
(Nenhum)
Prioridade:
5 - Medium
Gravidade:
5 - Medium
Resolução:
Nenhum
Arquivo:
Nenhum

Details

  • 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
  • Prioridade Update from 5 - Medium to 7
2011-06-01 00:38 Updated by: shisei123
Comentário

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

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

SVN: rev 247で以下の対応

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

以下は対策せずそのまま

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

Attachment File List

No attachments

Editar

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