Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hello 👋
As part of our project, we are using Facebook's new Memlab tool to detect memory leaks in SPA applications.
While running the tool and analyzing the code of defichain-income, we saw that your project does a very good job of ensuring that all async operations are cancelled when the component is destroyed. However, as per Memlab execution results, we found a dangling subscription and some timers that were causing the memory to leak (screenshots below).
[before]
Hence we added the fix by unsubscribing the subscription and clearing the timers in component destructors, and you can see the heap size and # of leaks reducing noticeably:
You can analyze this and other potential leak sources, if you like, by running Memlab with a scenario file covering the maximum # of use cases.
Following is a sample of the scenario file we used (it needs to be a .js file but attaching here in .txt form):
deficiain-memlab-scenario.txt
Note that some other reported leaks (in Memlab) originated from Angular's internal objects, and hence were ignored.