Status: New
Owner: ----

New issue 957 by [email protected]: bad V8 performance on floating point intensive cases
http://code.google.com/p/v8/issues/detail?id=957

V8 performs poor on some floating point intensive cases, for example, the "imaging-darkroom" and "imaging-desaturate" in Kraken benchmark (http://krakenbenchmark.mozilla.com/). For those two cases Firefox 4.0 w/ JaegerMonkey+TraceMonkey performs 2~3X better than Chromium w/ V8.

The analysis shows that Chromium/ V8 spends >30% time on GC mostly in young generations and >10% time on generic arithmetic operations, which is caused by the fact that floating points are not primitives and are wrapped as JS HeapNumber objects in V8. This introduces big overhead in arithmetic operations and frequently allocated short lived objects (holding temporary results) that causes frequent GC.

Here's some selected heap profiling log -

heap-sample-begin,"NewSpace","allocated",1287560593834
heap-sample-item,HEAP_NUMBER_TYPE,699050,8388600
heap-sample-end,"NewSpace","allocated"

We could see that the young generation is full of the HeapNumber objects.

We may need to improve such cases, for example, trying to generate type specific code like what TraceMonkey is doing?

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to