<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Dec 22, 2014, at 4:28 AM, Phil Bouchard &lt;<a href="mailto:pbouchard8@gmail.com" class="">pbouchard8@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class="">On 12/22/2014 02:04 AM, Myles C. Maxfield wrote:<br class=""><blockquote type="cite" class="">“Manager” is a vague term. Do you mean a replacement for malloc() / free()?<br class=""></blockquote><br class="">- It handles cyclic pointers so it's really a memory manager.<br class=""></div></blockquote><div><br class=""></div><div>None of the documentation explains how you do this. &nbsp;I’d need something akin to a proof to believe that you’ve solved this problem.</div><br class=""><blockquote type="cite" class=""><div class="">- It's deterministic because you can predict when all memory blocks will get deallocated<br class="">- All memory allocations are guaranteed to be free when the application terminates<br class=""></div></blockquote><div><br class=""></div><div>This last bit doesn’t matter. &nbsp;Instead, what matters, is that any object that dies can rapidly be deallocated regardless of the lifetimes of other objects. &nbsp;In particular, region-based memory management would be unacceptable for our purposes. &nbsp;I have a vague guess that you’ve reinvented regions.</div><br class=""><blockquote type="cite" class=""><div class=""><br class=""><blockquote type="cite" class="">Is there any documentation or explanation of your implementation?<br class=""></blockquote><br class="">Yes, in the aforementioned link:<br class=""><a href="https://svn.boost.org/svn/boost/sandbox/block_ptr/libs/smart_ptr/doc/index.html" class="">https://svn.boost.org/svn/boost/sandbox/block_ptr/libs/smart_ptr/doc/index.html</a><br class=""><br class=""><blockquote type="cite" class="">Why are you confident that WebKit would see speed improvements using this library?<br class=""></blockquote><br class="">I am currently working for a company that uses Webkit and most of the time the browser hangs because of the current garbage collector.<br class=""></div></blockquote><div><br class=""></div><div>That’s a rather extreme claim. &nbsp;Have you filed any bugs for this issue?</div><div><br class=""></div><div>It’s true that our GC can stop the world. &nbsp;We could fix that by making the GC concurrent or incremental. &nbsp;I’d welcome any patches in that direction.</div><br class=""><blockquote type="cite" class=""><div class=""><br class=""><blockquote type="cite" class="">What about your memory manager indicates that WebKit would be a good choice of user of it?<br class=""></blockquote><br class="">Why would Webkit be a good choice? &nbsp;Because it can improve the overall performance of the Javascript handler.<br class=""></div></blockquote><div><br class=""></div><div>It depends on what you mean by performance. &nbsp;You haven’t actually explained what you mean by it. &nbsp;Do you mean pause time? &nbsp;Utilization? &nbsp;Throughput? &nbsp;Memory usage?</div><div><br class=""></div><div>Note that we care about memory usage and throughput the most, with pause times and utilization being a close second. &nbsp;Probably going forward we’ll switch to caring about all four of them about equally. &nbsp;We cannot sacrifice one to get the others.</div><br class=""><blockquote type="cite" class=""><div class=""><br class=""><blockquote type="cite" class="">Are there any other libraries that use it? Which version(s) of Boost is/will this be included in?<br class=""></blockquote><br class="">It is still pending for review:<br class=""><a href="http://www.boost.org/community/review_schedule.html" class="">http://www.boost.org/community/review_schedule.html</a><br class=""><br class="">But it's already been unit tested so it is operative:<br class=""><a href="https://svn.boost.org/svn/boost/sandbox/block_ptr/libs/smart_ptr/example/" class="">https://svn.boost.org/svn/boost/sandbox/block_ptr/libs/smart_ptr/example/</a><br class=""></div></blockquote><div><br class=""></div><div>You would need a tremendous amount of evidence to convince us that this is usable for our purposes. &nbsp;Our GC may have its performance issues but it is very robust.</div><br class=""><blockquote type="cite" class=""><div class=""><br class="">The only thing left to be done is to use a faster pool than the current Boost one.<br class=""><br class="">Keep in mind that every time a Javascript page terminates, all memory allocations are guaranteed to be freed instantly. &nbsp;So if the memory is somehow exhausted; you just have to reload the page.<br class=""></div></blockquote><div><br class=""></div><div>We generally strive to ensure that users don’t have to restart the web process.</div><div><br class=""></div><div>-Filip</div><br class=""><blockquote type="cite" class=""><div class=""><br class=""><br class="">Regards,<br class="">-Phil<br class=""><br class=""><blockquote type="cite" class="">Thanks,<br class="">Myles<br class=""><blockquote type="cite" class="">On Dec 21, 2014, at 8:53 PM, Phil Bouchard &lt;<a href="mailto:pbouchard8@gmail.com" class="">pbouchard8@gmail.com</a>&gt; wrote:<br class=""><br class="">Greetings,<br class=""><br class="">I wrote a deterministic memory manager in C++ and I was wondering if their is any interests introducing it into Webkit, thus speeding up Webkit.<br class=""><br class="">The memory manager is located here:<br class=""><a href="https://svn.boost.org/svn/boost/sandbox/block_ptr/" class="">https://svn.boost.org/svn/boost/sandbox/block_ptr/</a><br class=""><br class=""><br class="">Sincerely yours,<br class="">-Phil<br class=""><br class="">_______________________________________________<br class="">webkit-dev mailing list<br class="">webkit-dev@lists.webkit.org<br class="">https://lists.webkit.org/mailman/listinfo/webkit-dev<br class=""></blockquote><br class="">_______________________________________________<br class="">webkit-dev mailing list<br class=""><a href="mailto:webkit-dev@lists.webkit.org" class="">webkit-dev@lists.webkit.org</a><br class="">https://lists.webkit.org/mailman/listinfo/webkit-dev<br class=""><br class=""></blockquote><br class=""><br class="">_______________________________________________<br class="">webkit-dev mailing list<br class=""><a href="mailto:webkit-dev@lists.webkit.org" class="">webkit-dev@lists.webkit.org</a><br class="">https://lists.webkit.org/mailman/listinfo/webkit-dev<br class=""></div></blockquote></div><br class=""></body></html>