[Webkit-unassigned] [Bug 146448] JavaScriptCore performance is very bad on Windows

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Jun 30 10:12:42 PDT 2015


https://bugs.webkit.org/show_bug.cgi?id=146448

--- Comment #10 from ewmailing at gmail.com ---
(In reply to comment #4)
> Maybe JIT in JSC is not enabled? It should be enabled by default, though.

So I don't think this is a JIT specific issue for several reasons.

- The number I'm seeing on Windows is way too slow, even without JIT

- Remember that Lua (official PUC-Rio) has no JIT at all. (That is one reason I included Lua as a reference point.)

- I didn't do a full suite, but I did some spot checks with LuaJIT about a year ago. (Lua 5.3 was still in alpha so it's changed a little bit since then and probably better today.)

iMac 3.2GHz Intel Core i3 (OS X 10.9.2)
@60fps (some variance, hard to reproduce sometimes due to background processes, etc)
C - 16000 sprites
Lua 5.3w1 - 5400 sprites
JavaScriptCore - 3300 sprites
LuaJIT - 9000 sprites

On an Intel 3570k (i5) with HD 4000 (3.4GHz):
SteamOS (beta from a year ago):
C - 5700 sprites
Lua 5.3w1 - 2700 sprites
JavaScriptCore - 3200 sprites
LuaJIT - 3600 sprites


Notice that LuaJIT performance really climbs up. I did not do any LuaJIT specific optimizations. 

Also notice the SteamOS benchmark where JavaScriptCore beats regular Lua. This is not happening on Mac so it got me thinking that JavaScriptCore on Mac does not enable JIT for Mac Apps.


- Here is an old benchmark I did on an iPad Mini 1st gen. 

iPad mini (1st gen, iOS 7.1)
@60fps
C - 750 sprites 
Lua 400 sprites (double/long long) and 430 for float/int
JavaScriptCore 200 sprites
LuJIT 430 sprites

I know iOS doesn't enable JIT for JavaScriptCore. JIT also must be disabled on LuaJIT for iOS so it returns to regular Lua-like performance. But notice that JavaScriptCore on a 1st gen iPad mini with no JIT is still beating Windows desktop.


So I expect JavaScriptCore, even without JIT to do a lot better than I see on Windows.


P.S. You said JIT should be compiled in by default. What are the compiler flags to look for? I'm compiling Android by hand and I don't know how to verify if JIT is on or not. My Android numbers are slightly better than iOS, but I think that's because my Android hardware is better than my iOS hardware and not because of JIT.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-unassigned/attachments/20150630/f35f5c6c/attachment.html>


More information about the webkit-unassigned mailing list