Archive for 'Uncategorized'
SunSpider Statistics, Part II
In my last post, I laid out some questions I wanted to answer. I decided to tackle these questions empirically, by running SunSpider 100 times with –runs=10, for a total of 1000 test suite runs, and then see if SunSpider’s confidence intervals and tests come out as predicted. Empirical methods are nice because you can [...]
Posted: February 6th, 2009 under Uncategorized.
Comments: 2
SunSpider Statistics, Part I: Questions
The TraceMonkey project uses SunSpider regularly to measure JavaScript performance. The problem is that the results are often hard to interpret. Is an 11 ms improvement a real speedup or just random? We all have our intuitions about how to use the numbers, but I wanted to try a little statistics on the problem. The [...]
Posted: February 6th, 2009 under Uncategorized.
Comments: 1
Seven things you may not know about me
I’ve been tagged by bsmedberg:
Rules
Link back to your original tagger and list the rules in your post.
Share seven facts about yourself.
Tag some (seven?) people by leaving names and links to their blogs.
Let them know they’ve been tagged.
Seven Things
I hail from the frozen tundra of Wisconsin, where the current temperature at my mom’s house (hi, Mom!) [...]
Posted: January 13th, 2009 under Uncategorized.
Comments: 1
A History of Insanity in the Age of x86
It’s been a long time since i’ve blogged–I’ve been pretty deep in coding mode. But bug 471822 has been fixed, and it’s time to celebrate with a post.
Bug 471822 is a TraceMonkey performance regression on SunSpider of about 70 ms or so that Andreas Gal noticed recently. And it was worse than a simple [...]
Posted: January 9th, 2009 under TraceMonkey.
Comments: 7
SquirrelFish
If you’re reading this, chances are that you already know about SquirrelFish, Appl/WebKit’s new Javascript implementation. Early tests show SquirrelFish to be 60% faster than WebKit 3.1 JS, 46% faster than Spidermonkey and 52% faster than TT (Tamarin Tracing) on SunSpider.
Clearly we have some work to do. The plan is to improve TT so that [...]
Posted: June 3rd, 2008 under Uncategorized.
Comments: 25
Tamarin Tracing Internals V: Running Compiled Traces
Whew. Reading all this TT code is fascinating, but also tiring, hard work. Anyway, I’ve hit almost all the high points by now, and I’ve traced out the JITting process all the way from ABC bytecode to native compiled traces. The questions I have left are about how traces actually get run, plus some related [...]
Posted: May 28th, 2008 under Uncategorized.
Comments: 7
Tamarin Tracing Internals IV: Trace Optimization
In part III, I went over how TT generates LIR traces. Now, I’m going to look into the trace optimization and machine code generation process. The code for this is mostly in the nanojit/ directory.
Keep in mind that a trace is always straight-line code in SSA form. This makes optimizations easier to implement, so it [...]
Posted: May 28th, 2008 under Uncategorized.
Comments: 4
Tamarin Tracing Internals III: LIR
Program Form 3: LIR. I believe LIR stands for low-level intermediate representation (although I’ve also heard linear intermediate representation). Typically, in a compiler or VM LIR is the lowest-level (and last) form of machine-independent compiler representation, and looks much like a machine-independent assembly language. TT’s LIR plays the same role but has some special features [...]
Posted: May 23rd, 2008 under Uncategorized.
Comments: 2
Tamarin Tracing Interals, Part II: Forth
The Need for Forth Subroutines. I had a really hard time tracking down how TT adds a pair numbers (ActionScript code like “sum += i”) worked until I finally figured out that ECMAScript “+” is not a primitive operation in TT. This makes perfect sense now, as “+” is complicated: it has to do different [...]
Posted: May 21st, 2008 under Uncategorized.
Comments: 3
Tamarin Tracing Internals, Part I
Tamarin (technically, tamarin-tracing, henceforth TT)-related projects keep peeking up at me from the horizon. First, there’s a good chance I’ll have an intern working on TT this summer. And then there’s this “Tracehydra” idea. It’s a way to connect Spidermonkey’s JS parser with the TT execution engine. This is the plan:
Where “profit” means “run Javascript [...]
Posted: May 16th, 2008 under Uncategorized.
Comments: 6