GithubHelp home page GithubHelp logo

fix memory leak about bigimageviewer HOT 10 CLOSED

piasy avatar piasy commented on July 19, 2024
fix memory leak

from bigimageviewer.

Comments (10)

Juziwsw avatar Juziwsw commented on July 19, 2024 5

这个地方确实有内存泄露的情况,比较严重

from bigimageviewer.

Piasy avatar Piasy commented on July 19, 2024

我用 LeakCanary 试了一下,并没有复现你所说的这个问题,倒是遇见了 square/leakcanary#696 这个问题。

不知你是怎么确定我这里有内存泄漏的?

from bigimageviewer.

wanghaihui avatar wanghaihui commented on July 19, 2024

的确 我Redmi Note 3也遇到了

from bigimageviewer.

Piasy avatar Piasy commented on July 19, 2024

抱歉各位,我近期没什么精力排查这边的问题,希望有朋友能帮忙排查解决,提交 pr :)

from bigimageviewer.

yigepang avatar yigepang commented on July 19, 2024

的确有问题,内存泄漏
java.lang.OutOfMemoryError: Failed to allocate a 3126652 byte allocation with 905352 free bytes and 884KB until OOM
at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
at android.graphics.BitmapFactory.decodeStreamInternal(BitmapFactory.java:639)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:615)
at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:391)
at com.davemorrissey.labs.subscaleview.decoder.SkiaImageDecoder.decode(SkiaImageDecoder.java:61)
at com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView$BitmapLoadTask.doInBackground(SubsamplingScaleImageView.java:1688)
at com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView$BitmapLoadTask.doInBackground(SubsamplingScaleImageView.java:1662)
at android.os.AsyncTask$2.call(AsyncTask.java:288)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)

from bigimageviewer.

yigepang avatar yigepang commented on July 19, 2024

以上问题是通过glide初始化导致,换成fresco初始化就好了

from bigimageviewer.

hero0812 avatar hero0812 commented on July 19, 2024

10-11 17:07:15.004 7406-7406/com.binbin.university E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.binbin.university, PID: 7406
java.lang.OutOfMemoryError: Failed to allocate a 4665612 byte allocation with 3646864 free bytes and 3MB until OOM
at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
at android.graphics.Bitmap.nativeCreate(Native Method)
at android.graphics.Bitmap.createBitmap(Bitmap.java:831)
at android.graphics.Bitmap.createBitmap(Bitmap.java:808)
at android.graphics.Bitmap.createBitmap(Bitmap.java:775)
at android.graphics.drawable.VectorDrawable$VectorDrawableState.createCachedBitmapIfNeeded(VectorDrawable.java:834)
at android.graphics.drawable.VectorDrawable.draw(VectorDrawable.java:318)
at android.widget.ImageView.onDraw(ImageView.java:1246)
at com.previewlibrary.wight.SmoothImageView.onDraw(SmoothImageView.java:155)
at android.view.View.draw(View.java:16195)
at android.view.View.updateDisplayListIfDirty(View.java:15192)
at android.view.View.draw(View.java:15965)
at android.view.ViewGroup.drawChild(ViewGroup.java:3610)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400)
at android.view.View.draw(View.java:16198)
at android.view.View.updateDisplayListIfDirty(View.java:15192)
at android.view.View.draw(View.java:15965)
at android.view.ViewGroup.drawChild(ViewGroup.java:3610)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400)
at android.view.View.draw(View.java:16198)
at android.support.v4.view.ViewPager.draw(ViewPager.java:2443)
at android.view.View.updateDisplayListIfDirty(View.java:15192)
at android.view.View.draw(View.java:15965)
at android.view.ViewGroup.drawChild(ViewGroup.java:3610)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400)
at android.view.View.updateDisplayListIfDirty(View.java:15187)
at android.view.View.draw(View.java:15965)
at android.view.ViewGroup.drawChild(ViewGroup.java:3610)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400)
at android.view.View.updateDisplayListIfDirty(View.java:15187)
at android.view.View.draw(View.java:15965)
at android.view.ViewGroup.drawChild(ViewGroup.java:3610)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400)
at android.view.View.updateDisplayListIfDirty(View.java:15187)
at android.view.View.draw(View.java:15965)
at android.view.ViewGroup.drawChild(ViewGroup.java:3610)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400)
at android.view.View.draw(View.java:16198)
at com.android.internal.policy.PhoneWindow$DecorView.draw(PhoneWindow.java:2690)
at android.view.View.updateDisplayListIfDirty(View.java:15192)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:281)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:287)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:322)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:2620)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2439)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2072)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1112)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6035)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
at android.view.Choreographer.doCallbacks(Choreographer.java:670)
at android.view.Choreographer.doFrame(Choreographer.java:606)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5453)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

from bigimageviewer.

hero0812 avatar hero0812 commented on July 19, 2024

多图浏览,达到一定数量时,出现OOM,不知该问题该怎么解决?

from bigimageviewer.

Piasy avatar Piasy commented on July 19, 2024

多图浏览是怎么实现的?可以分析一下为什么有内存没有释放,进而思考如何解决。

from bigimageviewer.

Piasy avatar Piasy commented on July 19, 2024

Please try v1.4.5 :)

from bigimageviewer.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.