Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump leakcanary-android from 2.7 to 2.9.1 #78

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Apr 21, 2022

Bumps leakcanary-android from 2.7 to 2.9.1.

Release notes

Sourced from leakcanary-android's releases.

v2.9.1

See Change Log

v2.9

See Change Log

v2.8.1

See Change Log

v2.8

See Change Log

Changelog

Sourced from leakcanary-android's changelog.

Version 2.9.1 (2022-04-20)

Preface

What are some things you'd like to see in a future LeakCanary 3 version? Tell me on Twitter!

Some ideas I'm playing with:

  • Moving heap analysis leak visualisation to a separate single app (written with Compose!) available on the PlayStore.
  • Bumping Okio to 3.0
  • Multiplatform heap analysis? Analyze a JVM heap dump in your browser?!
  • Visualize the heap dominators / retained size as a treemap.
  • A backend for LeakCanary?

New metrics in heap analysis metadata

I built LeakCanary to help fix leaks, but in doing so I accidentally wrote a fairly flexible heap dump parser. Since we're parsing the heap to find leaks anyway, we might as well report additional interesting metrics. Here's what you'll now see in the heap dump metadata:

  • Class count: count of loaded classes
  • Instance count
  • Primitive array count
  • Object array count
  • Thread count
  • Heap total bytes
  • Bitmap count
  • Bitmap total bytes
  • Large bitmap count (bitmaps with more pixels than 1.1x the pixels on screen)
  • Large bitmap total bytes
  • SQLiteDatabase in memory (open or closed, as well as their file path)

This is just a first pass, feedback and ideas welcome!

Performance improvements

The heap analysis now traverses the heap dump using RandomAccessFile instead of FileChannel.transferTo() and is now 40% faster on API 23 and 20% faster on newer APIs. Also, sticky class GC roots are now deduplicated, which great reduces the memory footprint of LeakCanary on API 23 (#2324). You can read about the related investigation on py.hashnode.dev.

Breaking change: FailTestOnLeakRunListener deleted

FailTestOnLeakRunListener, FailTestOnLeak and FailAnnotatedTestOnLeakRunListener were deprecated in LeakCanary 2.8 as they rely on hacking the Android Test library internals which have since changed, and have been replaced by LeakAssertions.assertNoLeak() and the DetectLeaksAfterTestSuccess test rule. I was initially planning of keep these around, but as I tried to increase API level coverage in LeakCanary I needed to upgrade the Android Test library to a more recent version, and the hacks now had compilation errors. So they're gone: #2282. If you can't use the test rules just yet, you're welcome to copy paste the listener implementations in your own codebase.

Other bug fixes and improvements πŸ›πŸ”¨

  • πŸ’₯ #2367 Fixed AndroidLeakFixes.FLUSH_HANDLER_THREADS (HandlerThread can have a null Looper).
  • πŸ’₯ #2286 Update Curtains to include Proguard rules and prevent WindowCallbackWrapper crashes.
  • πŸ’₯ #2294 Fixed WindowDelegateCallback.onMenuOpened() crash.
  • 🐀 #2328 Fixed ToastEventListener leak. Sorry 😬!
  • πŸ’₯ #2310 Fixed crash when using WorkManager < 2.1.0.
  • πŸ’₯ #2342 Fixed crash when HashSet.map is null (which isn't supposed to happen, oh well, Android πŸ€·β€β™‚οΈ).
  • πŸ› #2117 Fixed StrictMode disk read violations.

... (truncated)

Commits
  • 99a5606 Prepare 2.9.1 release
  • cacd5b3 Merge pull request #2367 from square/py/looper_null
  • 207a77e Handler null looper
  • be925ba Prepare for next development iteration
  • fefb65e Merge branch 'release_2.9'
  • 5abae5d Prepare 2.9 release
  • 67e41fa Merge pull request #2366 from square/py/metadata_moar
  • 3c82359 Add more metadata about the heap
  • f367992 Merge pull request #2365 from square/py/ids
  • 27bcd90 Introduce additional ways to represent object ids
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [leakcanary-android](https://github.com/square/leakcanary) from 2.7 to 2.9.1.
- [Release notes](https://github.com/square/leakcanary/releases)
- [Changelog](https://github.com/square/leakcanary/blob/main/docs/changelog.md)
- [Commits](square/leakcanary@v2.7...v2.9.1)

---
updated-dependencies:
- dependency-name: com.squareup.leakcanary:leakcanary-android
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot added the dependencies Pull requests that update a dependency file label Apr 21, 2022
@dependabot @github
Copy link
Contributor Author

dependabot bot commented on behalf of github Nov 14, 2022

Superseded by #99.

@dependabot dependabot bot closed this Nov 14, 2022
@dependabot dependabot bot deleted the dependabot/gradle/com.squareup.leakcanary-leakcanary-android-2.9.1 branch November 14, 2022 01:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

0 participants