diff options
author | Siri Hansen <[email protected]> | 2011-02-21 10:02:16 +0100 |
---|---|---|
committer | Siri Hansen <[email protected]> | 2011-02-28 17:17:41 +0100 |
commit | 38fc7a0eb46167a27ebac41452ecd1fb0de8803c (patch) | |
tree | ceae7c7ba8b6314e0e5ce8c72ebf3c107e76a414 /lib/observer/info | |
parent | e170c7f2ce8e0ac2cd45c922afc138305ca34b79 (diff) | |
download | otp-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/observer/info')
0 files changed, 0 insertions, 0 deletions