Liang Gong
Liang Gong
@foreseaz For node.js leak detection, you can take heap snapshots via [takeNodeFullHeap](https://facebookincubator.github.io/memlab/docs/api/modules/heap_analysis_src/#takenodefullheap), then use the following command to find memory leaks: ``` memlab find-leaks --baseline --target --final --leak-filter ``` The...
@agaripian > can you share an example of a filter definition syntax I can try? Here are a few [leak filter examples](https://github.com/facebook/memlab/tree/ed51031b201a1f79ec0c4d08550f0db8169dc93d/packages/cli/src/options/heap/leak-filter/examples). > Do I pass it the filter definition...
MemLab tests its APIs with Jest. Please check out the `src/__test__` folder of [each memlab packages](https://github.com/facebookincubator/memlab/tree/main/packages) for more examples. To find memory leaks in SPA using Jest, here is one...
Looks like the following two statements are talking about two different problems: 1. > As we know that, many native methods (implemented in C++) do not expose their state to...
@foreseaz If you are talking specifically about the closure scope, I agree the closure context in heap snapshot is less intuitive for debugging. But in terms of accuracy, the same...
@mdblr Bleak seems to intercept and rewrite JavaScript with mitmproxy. MemLab could potentially do that by intercepting and rewriting JavaScript in puppeteer for front-end JS leak detection and debugging. One...
Thanks for reporting this issue. The reason 7 copies of puppeteer and chromium browser got downloaded is because the puppeteer package you specified has a different version from the version...
@timocov Having a single package that encapsulates all puppeteer calls is a good idea. I will upgrade puppeteer which was also planned for other reasons, and move things around for...
Recent updates have made the `run-meta.json` file optional. Now, to enable a different E2E framework to generate output that can be consumed by the MemLab [`findLeaks` API](https://facebook.github.io/memlab/docs/api/modules/api_src#findleaksrunresult) or the [`memlab...
@unlikelyzero `findLeaks` takes a ResultReader as input instead of path. Here is a code example: ```javascript const {findLeaks, BrowserInteractionResultReader} = require('@memlab/api'); (async function () { const reader = BrowserInteractionResultReader.from('/path/to/dump/'); const...