[英]OutOfMemory in MuPdf
您好我在我的項目中使用MuPdf庫來查看文檔。 問題是,當您在平板電腦上11英寸的活動中打開3-7個文檔時,我會出現內存溢出。 加載新文檔時,將銷毀對上一個文檔的所有引用,但不會刪除內存中文檔的圖像。 在10-12兆字節的內存映像中創建對象。 在平板電腦上大小為7英寸這個問題不會出現。
也許有人遇到過這個問題?
通過在PageView.java的relaeseBitmaps()
方法中調用位圖上的recycle()
來解決此問題
public void releaseBitmaps() {
reinit();
mEntireBm.recycle();
mPatchBm.recycle();
mEntireBm = null;
mPatchBm = null;
}
在mupdf.c里面找到
“/ * 128 MB存儲用於低內存設備。根據需要調整。* /”和
更改內存限制並嘗試
我嘗試用512渲染比以前更快
我添加了以下代碼來強制在PageView.java中使用垃圾收集器,到目前為止似乎工作正常。
if (mEntireBm == null || mEntireBm.getWidth() != newSize.x
|| mEntireBm.getHeight() != newSize.y) {
mEntireBm = Bitmap.createBitmap(mSize.x, mSize.y, Bitmap.Config.ARGB_8888);
System.gc();//Added
Runtime.getRuntime().gc();//Added
}
編輯:打開文件幾次后崩潰
更改:/ * 128 MB存儲用於低內存設備。 根據需要調整。 * / glo-> ctx = ctx = fz_new_context(NULL,NULL,128 << 20); 至/ * 128 MB存儲,用於低內存設備。 根據需要調整。 * / glo-> ctx = ctx = fz_new_context(NULL,NULL,32 << 20);
這就是全部。 最大堆內存量~50Mb。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.