Heap snapshot + symbolized pseudo-stack trace from 2GB+ renderer |
||
Issue descriptionTrace at: https://drive.google.com/drive/folders/1alO7bRvFAp8wf-VasiTsxhBzKyveU48i + mvishnu071194@gmail.com, who reported the bug. I believe it's reproducible. """ I’m running a simple CRUD process in loop for multiple times for my webpage through puppeteer. I’m unable to find the reason why the tab memory goes on increasing in GB after a short span of time even though the JavaScript memory is in control. Can u please help me to know why this occurs ? """ Unfortunately, pseudo-traces don't provide very much detail. mvishnu, can you follow the same steps, but don't set any command line flags. Instead, go to about://flags and set #memlog to "profile all renderers".
,
Jan 11 2018
Took trace after setting #memlog to "profile all renderers". Used the tab for less than 5 minutes. Trace at: https://drive.google.com/open?id=1RO9473Y38XMMGKiq17xHWXV4hSAjpCVb OS: Windows 10 Pro Chrome Version: 63.0.3239.132 PID: 9532
,
Jan 11 2018
I would like to know how to reproduce this issue. Looking at the attached trace, the renderer seems to spend much virtual memory (=PageFileSize). However, its WorkingSetSize seems not large. Each allocator also says it doesn't spend tons of memory... So would you check the 2GB+ renderers by the sysinternals tool? (e.g. VMMap helps us to understand address space fragmentation.) I'm not sure whether vmmap, rammap, or process explorer works on the Windows or not. (c.f. https://docs.microsoft.com/en-us/sysinternals/downloads/rammap)
,
Jan 11 2018
mvishnu: Yes, please take a vmmap on Windows https://docs.microsoft.com/en-us/sysinternals/downloads/vmmap Note: The trace you uploaded in #3 is different from your previous trace - your previous trace showed 1GB live in BlinkGC and 1GB live in malloc [but we didn't have native stack traces]. The new trace shows only 30MB in each, but still a private memory footprint of 1.5GB, which is pretty surprising. Taking a vmmap will tell us what that memory is going...but ideally we could repro this with 1GB in malloc, since that will quickly lead us to the solution. Can you: Load the page...wait for a long time [or do whatever it is that causes the memory to bloat], and then take a heap dump [while you can use chrome://tracing, I recommend you go to chrome://memory-internals and click "save a dump].
,
Jan 11 2018
Gmncara cpt dpt uang dari. Commons
,
Jan 12 2018
Attaching Trace and vmmap dump of twitter site ran on loop with the help of puppeteer.
OS: Windows 10 Pro.
PID: 1880
tasak: Attaching puppeteer code.
To Reproduce the issue.
1. Install NodeJS 8.9.4 and install puppeteer and sequelize package through npm
2. Create database as below:
CREATE DATABASE puppeteer;
DROP TABLE IF EXISTS `keyvalues`;
CREATE TABLE `keyvalues` (
`keyname` varchar(255) DEFAULT NULL,
`value` varchar(255) DEFAULT NULL,
`id` int(11) DEFAULT NULL,
`createdAt` datetime DEFAULT NULL,
`updatedAt` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
LOCK TABLES `keyvalues` WRITE;
INSERT INTO `keyvalues` VALUES
('automation_running','true',NULL,NULL,NULL);
UNLOCK TABLES;
3. Set value column of the table to false to pause automation and true to resume automation.
4. Enter your username and password in the puppeteer_twitter.js code.
5. This code logins to the twitter account and click and views all the tweets in the page in loop.
6. After running this for more than 30 minutes the blink_gc is found to have around 450MiB.
,
Jan 12 2018
Attaching Trace of twitter site ran on loop with the help of puppeteer. OS: macOS High Sierra Version 10.13.2 PID: 814 Got blink_gc of 473MiB after running the process for nearly 30minutes
,
Jan 12 2018
Thank you for reporting how to repro and new trace files. I and keishi@ are looking at the information.
,
Jan 12 2018
According to your trace files, most of blink_gc's memory usage comes from DOM nodes. This looks like a Twitter bug. Twitter is keeping a ton of detached DOM nodes in window.DEBUG.registry.events[].element. In the case of your script, it seems to be retaining all the DOM nodes for all the posts it opened. FYI debugged this by taking a V8 heap snapshot and looking at the retainer for "Detached nodes". Closing as this is a website issue.
,
Jan 13 2018
Can you share documents on how to debug blink_gc memory and to find out what consumed memory of blink_gc and malloc
,
Jan 15 2018
Here is the documentation for the heap profiler. https://chromium.googlesource.com/chromium/src/+/lkcr/docs/memory-infra/heap_profiler.md |
||
►
Sign in to add a comment |
||
Comment 1 by haraken@chromium.org
, Jan 10 2018