aboutsummaryrefslogtreecommitdiffstats
path: root/lib/debugger/src/dbg_ui_mon_win.erl
diff options
context:
space:
mode:
authorSiri Hansen <[email protected]>2011-02-21 10:02:16 +0100
committerSiri Hansen <[email protected]>2011-02-28 17:17:41 +0100
commit38fc7a0eb46167a27ebac41452ecd1fb0de8803c (patch)
treeceae7c7ba8b6314e0e5ce8c72ebf3c107e76a414 /lib/debugger/src/dbg_ui_mon_win.erl
parente170c7f2ce8e0ac2cd45c922afc138305ca34b79 (diff)
downloadotp-38fc7a0eb46167a27ebac41452ecd1fb0de8803c.tar.gz
otp-38fc7a0eb46167a27ebac41452ecd1fb0de8803c.tar.bz2
otp-38fc7a0eb46167a27ebac41452ecd1fb0de8803c.zip
Fix slow parsing of crashdumps
This is a first attempt at fixing the problem described in seq11783 - crashdump_viewer is very slow at parsing big crashdumps. To open the first page for a dump of 17M takes about 2 minutes and a dump of 280M takes 1.5-2 hours. The main problmem is that the cdv_dump_index_table, which holds all tags read from the dump, is a bag. Profiling shows that ~95% of the time is spent in ets:insert. The table is now changed to an ordered_set. A second problem occured when a page with many table rows was opened. These pages were sent to inet in one chunk, causing both crashdump_viewer_server and the inets (mod_esi) process to grow very much in memory usage. To overcome this, the pages are now sent to inets in chunks of 1000 rows, and the data is coverted to binaries to avoid data copying between the two processes. Also, some new information in the crashdump was not recognized by the crashdump_viewer. This has been fixed.
Diffstat (limited to 'lib/debugger/src/dbg_ui_mon_win.erl')
0 files changed, 0 insertions, 0 deletions