-
-
Notifications
You must be signed in to change notification settings - Fork 228
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
Memory leak #2028
Comments
* Fixes console errors outputted when exiting fullscreen * Vuetify has a memory leak fix, possibly might fix/improve #2028
This comes with huge delay, but there have been a lot of advancements in this regard. Though Vue still has many Suspense issues when combined with transitions, I'm almost sure the exact source of our leak is on Vuetify's side, since the antfu's repo was GC'ed correctly and many other complex demos with Suspense + Transition did too. While profiling in our client, all the references pointed me to
For context, I'm using Edge DevTools
(You should refresh the tab and run GC again every time you perform a change in the template and want so there are no external "variables" that could affect the results of the test. A tab refresh should always render the same amount of nodes regardless, in my case it's consistently 860) Repeat this with this raw vue: https://play.vuejs.org/#eNo9jTEOwjAMRa9ishQGiLqiFMHGAZBYskBw24g0jlKnS9W7kxKpm7/03vMsbiGcpoTiLNRoog0MI3IKF+3tECgyzBCxhQXaSANUGa20196QHxmYus4hNCuy55jwoL2SpZMLeTAOwb0Y8wJQ78RMHq7GWfNttNj8Xbm0+HMAjzJXRxapBPoapqNtNzULd3SO4EnRfXZK9nUGldzeiuUHZbxN9A== You could even reproduce the same behaviour with swiper demos, which all are GCed correctly: https://swiperjs.com/demos I didn't open an issue in their repo yet since I still didn't have conclusive results. |
#2201 Really improved the situation, since the items store couldn't be garbaged collected properly. However, there are still some leaks in the full music player's swiper and the draggable queue (although they are minor and probably affects less users). |
For future reference, as of v3.4.11 Vuetify has been fixing memory leak issues since v3.4.6. v3.4.5: v3.4.6: v3.4.8: v3.4.11: |
Description of the bug
There's a memory leak with DOM elements not being detached correctly in master when switching between pages, so long-running sessions of the client might make the browser consume a lot of memory.
I believe this is caused by a combination of
Suspense
(which is still beta) andTransition
, as showcased in https://github.com/antfu/repro-vue-suspense-transition-memleakI'm still trying to isolate all the dependencies as much as possible to triage where this is coming from exactly, since this might not be a Vue bug.
The text was updated successfully, but these errors were encountered: