<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Apr 25, 2013 at 7:29 AM, Spencer Kohan <span dir="ltr">&lt;<a href="mailto:spencerkohan@gmail.com" target="_blank">spencerkohan@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I&#39;m attempting to use JavaScriptCore in a real-time application, and I&#39;m running into long pauses for garbage collection as memory usage increases.  I&#39;ve been digging into the GC implementation in an effort to improve performance, and I&#39;ve noticed some references to the compiler directive &#39;PARALLEL_GC&#39; throughout the code, which makes me wonder if there&#39;s already support for multi-threaded GC, and if so how to enable it.</div>
</blockquote><div><br></div><div style>JavaScriptCore uses a parallel Garbage Collector, but it is not concurrent with the main thread.</div><div style><br></div><div style>When the engines requires to collect memory, the main thread stop and start the garbage collection. If the space is large enough to justify spawning threads, the garbage collection happens on as many core as needed to minimize the collection time.</div>
<div style><br></div><div style>At the moment, the parallel GC is enabled on Mac OS X, iOS, GTK and Blackberry.</div><div style><br></div><div style>If you are not using the latest version of WebKit trunk, I suggest you to update and try again. The garbage collector has improved lately, pause times have been reduced a lot.</div>
<div style>If you still see long pauses with the latest WebKit, it would be worth looking at the JavaScript code to find if something causes memory trashing.</div><div style><br></div><div style>Benjamin</div></div></div>
</div>