News for hackers. Stuff that matters.
Re:3.7X speedup from removing a call to sleep by zizee on Sunday September 02, 2012 @07:38AM (#4466795)
So if I understand this correctly the 3.7x speedup is a speedup in garbage collection and will have a positive effect on the speed of the browser which is nice.

But what sort of effect will this have on page rendering? Anyone in the know care to comment on the specifics?

edit: improvements to my shoddy wording.

Re:3.7X speedup from removing a call to sleep by osivertsson on Sunday September 02, 2012 @07:48AM (#4466808)
My guess from spending only a few days with the WebKit source is that it will not effect page rendering at all.

Possibly not desktop performance at all since I believe GC is done in a separate thread and (from my understanding) you never wait on it, unless you are really memory constrained.

Could make a difference on IOS where I believe you actually don't have this GC memory scavenger thread.

Anyway, the source is quite readable and everyone working with WebKit on one level or another could benefit from taking a look. At the very least it gives you a feeling for the tremendous effort from a huge number of people that the WebKit project really is.

Re:3.7X speedup from removing a call to sleep by zizee on Sunday September 02, 2012 @09:08AM (#4466919)
Cool, thanks for the insight.
Re:3.7X speedup from removing a call to sleep by azakai on Sunday September 02, 2012 @01:32PM (#4467569)
The speedup sounds like it is very specific to GC, apparently the WebKit GC relies on this component heavily.

I would guess this is relevant only for GC in Safari, since it uses the WebKit JS engine, and not Chrome (which uses a completely different JS engine, V8).

It's also likely only a speedup in a specific GC benchmark. If it had helped in say the SunSpider benchmark, I'm pretty sure it would have been fixed a long long time ago.

Re:3.7X speedup from removing a call to sleep by othermaciej on Sunday September 02, 2012 @04:49PM (#4468061)
This code is actually not that specific to GC - this particular spinlock is used by our custom malloc implementation. It's just that our GC creates a different concurrency pattern than most other workloads for the allocator.