[webkit-dev] WebKit memory instrumentation

Yury Semikhatsky yurys at chromium.org
Mon Jul 23 08:09:19 PDT 2012


*Hi WebKit,

Almost all developers would like to know why the render process takes so
much memory. We are trying to address this problem by providing an
information on how much memory is consumed by some high-level WebKit
parts(DOM, CSS, JavaScript etc) . Currently there is  a real-time chart in
Web Inspector that shows the render process memory broken down into several
components:


To achieve that we instrumented several classes in
WebCore<http://code.google.com/searchframe#search/&q=reportMemoryUsage%20package:chromium&type=cs>to
report an estimation of their memory footprint. The main problem with
that approach is that it can be easily broken by changes to the
instrumented clasess. We need a way to guard from such changes that would
automatically validate the instrumentation and make sure it matches current
class structure.

We see several ways of doing that.

First option we consider is to define a class with the same set of fields
as the instrumented one, then have a compile time assert that size of the
reference class equals to the size of the instrumented one. See
https://bugs.webkit.org/attachment.cgi?id=153479&action=review for more
details.

Pros: compile time error whenever size of an instrumented class changes
with the appropriate modifications to the instrumentation function.
Cons: it will require each committer to adjust the reference class and the
instrumentation on any modification that affects size of the instrumented
class. Changes that don't affect size of the class will go unnoticed.

The second option is to write a tool/script/llvm-plugin and use it on a
build-bot to monitor the relevance of instrumentation and update it on when
a new field is added to an already instrumented class. However, a question
remains who and how often would do this.
Pros: a committer may not need to update the instrumentation immediately.
Cons: the instrumentation may be behind the actual memory usage. An
addifitional effort required to create the tooling.

We would like to know what you think about it and will greatly appreciate
any ideas and suggestions.

Regards,
Yury, Alexei, Ilya
*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20120723/31cd3c10/attachment.html>


More information about the webkit-dev mailing list