Contact
Search
Essays
« Artifact Coffee / Woodberry Kitchen - Baltimore's Haven | Main | Rapid Fire Coffee Review »
Friday
Aug222008

TraceMonkey vs SquirrelFish

With the announcement of TraceMonkey, we saw that SpiderMonkey got a huge improvement. However, in previous benchmarks, SpiderMonkey was still slower than SquirrelFish. So, how does Trace Monkey compare versus SquirrelFish:

Overall, if you aggregate the time for each test, TraceMonkey is about 15% faster. If you do the aggregate speedup, which is the speedup for each test divided by the number of tests, it is about 2.4 x faster. Sometimes TraceMonkey is slower, but give them more than 60 days to hash it out, and I'm sure it'll get faster.


Notes: SquirrelFish and TraceMonkey were with release builds. Tests run on a MacBook Pro 2.4 ghz, 4 gigs of ram, OS X Leopard 10.5.4. TraceMonkey was just pulled about an hour ago. SquirrelFish was last nights SVN.

Good Job Guys. More info on TraceMonkey at Andreas Gal's Blog, Mike Shaver, David Anderson, and for a real visual demo, checkout Mike Schroepfer's blog.

PrintView Printer Friendly Version

EmailEmail Article to Friend

Reader Comments (10)

Beware that SquirrelFish doesn't compile its VM bytecodes to native code yet (hint: remember Apple sponsors LLVM), and many of the low-hanging-fruit optimizations haven't been implemented at all, while TraceMonkey is already a massive inliner of specialized, native code!! So... The game of leapfrogging has just begun ;)

August 23, 2008 | Unregistered CommenterAndré

Haha that is true, however TraceMonkey still has a lot of low hanging fruit as well :). Either way it is good for the web, and it is good to have competition. Should be a fun interesting ride.

August 23, 2008 | Unregistered CommenterMason Chang

Just compiling VM bytecodes for a language like JavaScript doesn't buy you much since you'll still have to emit code that handles all possible execution paths for all possible types. The trick is to reduce run-time type checking by discovering traces with stable types.

August 24, 2008 | Unregistered CommenterMichael Bebenita

Michael, I'm pretty aware of your involvement with Andreas Gal and UC Irvine in general, so I won't dare to dispute your point.

On the other hand, you don't seem to fully realise the potential of LLVM. I suggest that you check it out, and take a peek at this page for some inspiration regarding how dynamic languages are targeting LLVM (the description of the FAUST language is particularly compelling considering the point you brought: http://llvm.org/ProjectsWithLLVM/#faust)

Cheers,
A.

August 26, 2008 | Unregistered CommenterAndré

Aggregate speedup? Have you ever heard about geometric mean?

October 22, 2008 | Unregistered Commenterr0b0t

geometric mean? How is that at all relevant here? These opperations are added, not multiplied.

October 25, 2008 | Unregistered CommenterAnonymous

http://portal.acm.org/citation.cfm?id=5673" REL="nofollow">How not to lie with statistics: the correct way to summarize benchmark results

October 27, 2008 | Unregistered Commenterr0b0t

������! � ��������� �������. � ��� �������� ����. ����� ���������� �������, ��� :)

December 18, 2009 | Unregistered CommenterPaurareilia

nice site ^) good gob

December 19, 2009 | Unregistered CommenterPaurareilia

Thanks for giving me an amazing post, its great time to read your post. I’ve got some more interesting topic for discussion. So keep it up.
Diet Solution Program Review
Acai Berry Diet
Acai Berry
Acai Max Cleanse
How To Get Pregnant

June 17, 2010 | Unregistered Commenterstellabrown

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
Post:
 
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>