[webkit-dev] WebKit memory management?
Mark Rowe
mrowe at apple.com
Tue Jun 3 20:21:39 PDT 2008
On 03/06/2008, at 19:58, Paul Pedriana wrote:
> As I have mentioned recently on this list, I am investigating the
> possibility of porting WebKit to work within games on gaming
> platforms.
> Recent help on this has been greatly appreciated and I am going to try
> to stick with WebKit as opposed to Mozilla/Gecko.
>
> A major consideration for the usage of libraries in general on gaming
> and embedded platforms is that their memory usage be controllable. The
> application should be able to set aside a block of RAM and have the
> library use that block of RAM via a user-supplied memory allocator. At
> no time should the library attempt to use any other memory nor use its
> own means to access the user-provided memory. This pattern of library
> development is very important, and most professional commercial
> library
> software follows this pattern (including all commercial peers of
> WebKit). I am wondering how I might achieve this with WebKit.
WebKit uses a derivative of Google's high-performance Thread Caching
Malloc (<http://google-perftools.googlecode.com/svn/trunk/doc/tcmalloc.html
>) for the majority of allocations. We've tuned the allocator to add
further performance gains over the system allocators on Mac and
Windows, and have recently made further improvements to ensure unused
memory is returned to the system. Within JavaScriptCore and WebCore
we overload "operator new" and "operator delete" in terms of our
"fastMalloc" and "fastFree" functions to ensure all C++ object
allocations go via this allocator (<http://trac.webkit.org/browser/trunk/JavaScriptCore/wtf/FastMalloc.h
>). The few direct calls to "malloc" and "free" within
JavaScriptCore and WebCore are also made via our wrapper functions.
This should make it straightforward to substitute your own custom
allocator in place of WebKit's if it would better suit your target
environment.
Kind regards,
Mark Rowe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2413 bytes
Desc: not available
Url : http://lists.webkit.org/pipermail/webkit-dev/attachments/20080603/e8f3b6af/attachment.p7s
More information about the webkit-dev
mailing list