HTML5, and Real World Site Performance: Seventh IE9 Platform Preview Available for Developers

Performance on the web is multi-dimensional. Real websites call on many different browser subsystems to deliver amazing experiences. Each browser subsystem in turn has its own performance characteristics. The chart here and the diagrams in this post describe the specific subsystems like JavaScript and graphics rendering and more in detail.

Over the last few weeks, we’ve been tuning the JavaScript engine for more of the patterns we’ve found in real world sites. Based on the progress since the last platform preview, we’re releasing an updated platform preview build today so developers can try it out and provide feedback about the changes. Here’s a video of the changes in action:

Stepping back from these striking differences, let’s look at the big picture. JavaScript performance is one part of one aspect of performance. In addition to the other parts of the browser platform (like graphics rendering), performance involves other aspects as well: how well does the browser guard the user from slow add-ons, or from unreliable sites that crash? Enabling users to pin websites to the Windows taskbar means that users can go directly to sites without having to launch the browser and navigate. Making the most of your device for web browsing is significant as well. Taking advantage of the whole PC, and using the specialized graphics hardware and the many cores that modern PCs typically include, offers huge performance gains.

Tuning the JavaScript Engine for Real world patterns

Real world websites use JavaScript to respond to user input, manipulate strings, and move objects around the screen, and much more. We looked at common patterns and made adjustments to IE9’s script engine. You can try these examples (and more) at

Running these sites in other browsers like the latest Google Chrome or FireFox 4, shows significant performance differences. In Shakespeare’s Tag Cloud, you see the performance advantage of compiled JavaScript and ECMAScript5 support with script-intensive operations. IE9 can run through a large body of text and build a tag cloud much more quickly. That same ECMAScript5 support combined with HTML5 Canvas delivers an HTML5 Sudoku solver that can solve puzzles faster than other browsers running the same site. With Galactic, you see fast JavaScript and hardware accelerated graphics together creating a 3D interactive experience. The frame rate in IE9 is significantly better than what the other browsers do today.

The Webkit SunSpider Microbenchmark

One measure of some aspects of JavaScript performance is the Webkit Sunspider microbenchmark. Remember that JavaScript is just one component of many that define browser performance on real world sites. Here is a chart of the latest results:

Webkit Sunspider JavaScript Benchmark Results.  IE9 Platform Preview 7 is fastest followed by Chrome 8 Beta, Opera 11 Alpha, Opera 10.63, Chrome 7, FF 4 Pre-Release, Safari 5.0.2, FF 3.6.12 and IE8.

You may notice that the relative positions of browsers on this chart have changed with the latest IE9 Platform Preview.

We’ve gotten some questions after the last few Platform Previews about this chart. The results in the graph are from running actual browsers (in a consistent lab setup), just as we have since we started publishing the chart. Reporting results that “rely on a ‘shell’ JS engine that runs in a command line” is odd because those results don’t reflect the user’s experience in a browser. Similarly, because the point of a browser is to run actual websites, not just benchmarks, the chart we publish continues to include two versions of each other browser. You can read more on this choice at the end of this post.

You may also notice that the differences between browsers on this microbenchmark are converging within thousandths of a second on tests that repeat operations many, many times to find any differences at all. Some have suggested that this benchmark doesn’t matter now and it’s time for another JavaScript microbenchmark.

We’ve been consistent in our point of view that these tests are at best not very useful, and at worst misleading. Even with the most recent results in the chart above, our motivations and our point of view remain unchanged. We’ve focused on improving real world site performance. We’ve made progress on some microbenchmarks as a side effect. Focusing on another subsystem microbenchmark is not very useful.

Microbenchmarks and Real world web patterns have little in common

We think people should evaluate browser performance with real-world scenarios. Real-world scenarios involve using all the subsystems in the browser together rather than looking at single subsystems in isolation. Using a narrow slice of features to assess the big picture makes as little sense here as using the “Acid” tests to understand standards compliance.

Microbenchmarks isolate very narrow and specific aspects of a system. That’s the opposite of real-world websites that use the different subsystems together in order to deliver something useful or entertaining. Microbenchmark results often have little in common with the actual user experience of sites; for example, comparing JavaScript ray tracing or Fourier transforms is a good measure if that’s what the sites you rely on actually do. Performance on the test drive site samples has not, to date, looked like the Webkit SunSpider graph because there’s more to real world performance than JavaScript. The work at the W3C with other browser developers on a web standard to help developers measure and understand the performance of their website is a powerful statement about how much more there is to performance than JavaScript.

This Channel 9 interview with Jason Weber (a Lead Program Manager on the IE team focused on performance) is worth watching if you’re interested in hearing more about the difference between real world performance and microbenchmarks,

The IE Test Drive site offers samples that run in all browsers and deliberately represent real-world site patterns rather than microbenchmark-style samples. The visualization of the real-world samples is often more fun than a graph, as with Galactic, browser hunt and speed reading. The performance differences between browsers can be striking. They reflect how we’ve designed for real world, end-to-end performance rather than tuning subsystems for microbenchmarks.

Previews with Meaning

Back in March, we committed to delivering public Platform Preview Builds to the developer community on a regular schedule leading up to the IE9 beta. Feedback about these previews from developers has made both the IE9 development process and the IE9 release itself significantly different from previous IE releases.

This latest Platform Preview comes about two and half weeks after the most recent Preview. Leading up to the IE9 beta, we released Platform Previews approximately every eight weeks. We have internal builds of IE at least once a day, often more. Why not release public “dailies” and “nightlies” of IE?

The cadence of IE Platform Previews reflects our point of view: the point of a browser is to run actual websites, not just benchmarks or samples that are hardwired for one browser. Our point of view starts with providing consistent quality to respect customers’ time and includes delivering meaningful progress with each Platform Preview.

Twenty four hours of elapsed time is rarely meaningful. “Nightlies” vary widely in performance and quality, and may not run actual websites successfully. Those daily builds are of some interest to a small audience of “insider” enthusiasts who often take activity (even incrementing the version number) as progress. The gap between the IE Platform Preview download numbers (in the millions) and the other browsers’ pre-release offerings reflects this difference.

Looking ahead, we will continue to improve IE9’s performance. Making the full power of the PC available to websites is part of our focus on real-world sites and real-world performance. We’ll continue to work with the W3C and other browser developers to deliver on the goal of the same markup (the same HTML, CSS, and script) working across browsers. We’ll continue to take a holistic approach to the browser experience and platform and safety. We’ll also continue to release at a cadence that provides meaningful builds for the community to provide meaningful feedback.

Dean Hachamovitch

Update 1:10pm – There have been some questions raised about how a particular optimization in the Chakra engine is affecting IE9’s Webkit Sunspider results. The below addition addresses these questions.

Dead Code Elimination in JavaScript

One of the changes we made to the IE9 JavaScript Engine, codenamed Chakra, to improve performance on real world web sites involves dead code elimination. Yesterday afternoon, someone posted a question (“What sorts of code does the analysis work on, other than the exact [math-cordic test] function included in SunSpider,”) on the Microsoft Connect feedback site. Given some recent interest in this question, this blog answers that question.

Briefly, the IE9 JavaScript engine includes many different changes to improve the performance of real-world Web sites and applications. You can see this in action by visiting and trying the samples there with IE9 and other browsers. The behavior of the IE9 JavaScript engine is not a “special case optimization” for any benchmark and not a bug.

Some of the optimizations we’ve made to the JavaScript interpreter/compiler in IE9 are of a type known in the compiler world as dead code elimination. Dead code elimination optimizations look for code that has no effect on a running program, and removes the code from the program. This has a benefit of both reducing the size of the compiled program in memory and running the program faster.

Here is a very simple example of JavaScript code that is a candidate for dead code elimination. Because the conditional will always evaluate to false, the JavaScript engine can eliminate this code altogether.

function func() {
    var x = 1;
    var y = 3;
    var w = x + y;

    if (w != 4) {
        // dead code 

Dead code elimination is especially effective when code would be executed many times, as in a loop. In the following example, the code in the loop repeatedly overwrites the same variable (what is known in computer science as a dead store), so it can be reduced to only one call.

function func(a, b) {
    var x;
    var i = 300;
    while (i--) {
        x = a + b; // dead store

In the example below, the code executed in the loop is not used anywhere in the program outside the loop, so the entire loop can be safely removed.

function sum() {
    var a = [1, 2, 3, 4, 5];
    var sum = 0.0;
    // dead loop elimination
    for (var i = 0; i < 5; i++) {
        sum += a[i];

Developers often write dead code without knowing it and can rely on compilers to optimize the code. Most modern compilers today run an extensive set of dead code elimination optimizations.

So, why does this affect the math-cordic benchmark in the Webkit SunSpider suite? Let’s take a look at the inner function in the test.

function cordicsincos() { 
     var X;  
     var Y;  
     var TargetAngle; 
     var CurrAngle;  
     var Step;   
     X = FIXED(AG_CONST);         /* AG_CONST * cos(0) */ 
     Y = 0;                       /* AG_CONST * sin(0) */ 
    TargetAngle = FIXED(28.027);  
    CurrAngle = 0;  
    for (Step = 0; Step < 12; Step++) { 
        var NewX; 
            if (TargetAngle > CurrAngle) { 
               NewX = X - (Y >> Step);  
               Y = (X >> Step) + Y; 
               X = NewX; 
               CurrAngle += Angles[Step];  
            } else { 
               NewX = X + (Y >> Step); 
               Y = -(X >> Step) + Y; 
               X = NewX; 
               CurrAngle -= Angles[Step]; 

The benchmark runs an expensive loop, and then does nothing with the results; the benchmark is written exactly in a way that triggers this general optimization.

Of course, the benchmark could be rewritten to avoid triggering this optimization, which would bring our performance on this specific benchmark in line with other browsers.

The interest in this issue is a great example of why these microbenchmarks fail to represent the real world web. Webkit Sunspider uses an expensive JavaScript loop to approximate sine and cosine. Real world sites would actually use the much faster and CPU-optimized functions already available in JavaScript engines.

These optimizations are relatively new to the world of JavaScript runtimes even though there are many examples of dead code in real-world JavaScript on the Web. These optimizations often require significant flow analysis of the code, and in a real world site, spending too much time analyzing code can reduce the responsiveness of the page. The Chakra engine picks the right balance between code quality and analysis time, and only performs a small set of dead code optimizations. We continue to tune this for IE9, and bugs reported via Microsoft Connect are examples of where the optimization could do more. We continue to tune these and other optimizations for the final release.

This kind of dead code elimination is one of many optimizations that Chakra makes to reduce unnecessary work. Over the next few days we’ll post about some of the other techniques Chakra uses to deliver great performance.

Comments (165)
  1. Spindel says:

    Good job but when will you update the beta version? Tabs on top, password sync, "load urls as you type" is features I need in my browser.

    Keep up the good work!

  2. Bob says:

    Please stop using the SunSpider benchmark. A 5 ms distinction is not an important one. There are plenty of better ones out there like Google V8 version 6, Mozilla Kraken, and Peacekeeper.

  3. Sentinel says:

    A heartfelt congratulations to the IE Team! Two thumbs up! =D

  4. Hugh Isaacs II says:

    Still no CSS transitions, text-shadow, border-image or pointer events.

    Will these ever make it into IE9?

  5. pulgar says:

    what bob said

  6. Stilgar says:

    Speaking of Sunspider any comments on  this:…/internet-explorer-9-caught-cheating-in-sunspider-benchmark

    BTW can anyone who've installed the new preview inform us if there is any development on the font rendering BUG.

  7. Paul says:

    I was excited about javascript news and downloaded your preview. Then I realized the preview was typical Microsoft FUD. The soduku solver you posted DOES NOT SOLVE GAMES FASTER than Chrome 7. Chrome can solve 1000 games in 0.198 seconds and your IE9 preview takes 0.269 seconds for 1000 games making you 30% slower. When I run 10,000 games you're 0.008 seconds faster. Why don't you let people solve only 1 game? Because the fewer games the more Chrome beats you? If I ever need to solve 100,000,000,000,000,000 soduku games maybe I'll runIE. For playing 1 soduku game which is what people actually do on the web Chrome is better choice.

  8. Spindel says:


    I just tried what you said and you are wrong:

    Typical Paul FUD…?

  9. Glen says:

    While I agree that java script speed improvements are a good thing, I also share Hugh's comment above.  The implementation of certain CSS3 styles and behaviors is far more important than shaving a few more milliseconds on script performance scores.

  10. Ed says:

    Please can we have a non-silverlight video embed option next time.

    eg: ogm or x264 in video tags

  11. 0101 says:

    A web browser app should be about balance, you are tunnel visioning on w/e people used to mock IE with and leaving important stuff to the side, like the important CSS3 features mentioned, we can only hope you are saving a somewhat balanced build to the final product.

  12. thebeebs says:

    @ed the video shows  up as HTML5 for me… Looking at the code they feature detect if you can play mp4 if not fall back to silverlight.

  13. Aethec says:

    Could you please add a SunSpider graph without IE8 ? Currently, we can't see any difference between browsers (even though that's probably something you wanted to show – there is little to no difference between modern browsers in the SunSpider test)

  14. Steve Ottenad says:

    I agree with Hugh and Glen above me. Please Please implement other "Common" css3 attributes before burning cycles on shaving 2% off your javascript processing times. Other major browsers have had these features for years, and given that IE only releases new versions every year or two (if we're lucky), I could see not including the css3 spec to be the nail in the coffin for IE.

  15. Victor says:

    Please, add other CSS3 features before release. No text-shadow support is just absurd. As said before, there are fair more important features to be implemented rather than keep posting that IE9 is 0.000002s faster than anything on earth. Help us developers to move the web foward for a change. Thank you.

  16. RF says:

    I second Hugh Isaacs II.  CSS transitions seem the most useful of his requests, to me — easy to author, they can save us from writing lots of JavaScript, and they're a great mechanism for progressive enhancement (usually you don't care if old browsers don't show your transitions).

    And the focus on JS speed has always been a little wacky but there's certainly a case for focusing on it out of proportion to how important it is to *today's* apps.  It opens up whole new application areas (cryptography in JS, image operations, realtime games, larger client-side DBs) and frees us to use programming practices (huge libraries like Ext, compilers in JS like Processing.js or Objective-J) that we're just not doing much of today.  The great thing is precisely that we can't foresee all the use cases!

    As always, congrats on moving the Web forward and good luck with ๐Ÿ™‚  You know Apple and Google aren't standing still, right?

    (Also, the blog post text is blurry on Chrome for Mac 9.0.572.1.  Not a clue why.  May well be Chrome dev branch's fault.  Looks normal with the zoom level set high.)

  17. G.T. says:

    No spell check = useless for business applications, still with Google chrome, but will have a look sometimes on IE builds.

  18. BoredWithConspiracyTheory says:

    Run "Speed Reading" in Chrome and still try to argue that it's fast.

  19. JamesG269 says:

    I appreciate the speed increases with each IE9 PP including this latest one, great stuff.  The faster the browser is, the more stuff the web page and user can do with it.  However, I do agree, now that IE9 is nice and fast, with graphics and javascript, and is pretty secure, I'd like to see increased adoption of the html5, canvas, css3 and svg web standards. Thanks for listening. – James.

  20. OhByTheWay says:

    Hey guys, great work but on my computer Chrome still does considerably better than IE9 at mozilla's ant farm test.…/ants

  21. Bruno says:

    Tell me lies tell me sweet little lies Microsoft….

    you hacked your browser to run faster this test!!!!!!!

    Look at the facts. someone just changed 2 lines of code in the test and "wow" now Internet explorer 9 beta looks much more slowly……/10374

  22. Jeffrey Gilbert says:

    Very specifically, THIS page crashes my safari. I know you guys don't test this site in safari based on your search box and how jank it looks with the glow border inside your curvy corners setup, but could you not crash my browser please?

  23. Meph says:

    It's a shame that this release didn't include any support for other standards, such as the CSS transitions module, but it's still good to see improvements of any kind.

    However, for the next release, I would like to see support mainly for the text-shadow property. After that, I'd like to see experimental support for CSS transitions and CSS gradients; the latter of which may be asking for much.

  24. Will says:

    @Jeffrey Gilbert

    Posting this from Safari to say you're full of crap.

  25. Blade says:

    I would like to see IE9 auto update like Microsoft Security Essentials and frequently.

  26. David S says:

    Not complaining about the latest preview but is there any chance of text-shadow and css transitions in the next release? These are game changer features.

    I didn't get around to it yet but I need to file a bug about using IE9 on youtube. I can't select search suggestions when I type a partial query in the search box. It simply just ignores my selection whether I use the keyboard or mouse. Of course, selecting search suggestions in bing work ๐Ÿ˜€

  27. Matt Parlane says:

    About the Chrome version number — please learn to recognise a joke when you see one.

  28. Schram says:

    Has anybody had this same problem with the last couple of IE9 Platform Previews?

    If I go to Page | Open , put in a URL and hit Enter, the status bar gives updates as if things are loading correctly, but nothing displays. I have to either switch to a different window and switch back, or grab the window's title bar and move the window slightly before all the content actually shows up.

    If I move the mouse around on the blank page, the status bar will change to show any URLs that I'm hoving over, but the page remains blank unless I do one of the two things above.

    Other than that, the browser's running great. Obviously this is a big problem for me, though. Any ideas?

  29. Just Me says:

    As others mentioned already, I'd rather like to see IE 9 improve in CSS support. The CSS text-shadow property has been mentioned first in CSS 2.1 back in 2005 but then moved to CSS 3. According to the Microsoft Connect site there are no plans to add it in IE 9 which is really disappointing because all competitors support it (some for many years).

    Also, I'd like to see CSS background gradients as those would help immensely to cut usage of background image stuff which not only decreases page load time but also simplifies development (one markup for all, something mentioned on this blog before) as all other major browsers support it for at least a year.

    While scripting performance is definitely important, especially looking at the poor performance of IE up to v8, it is not the only usual suspect. Web designers have bickered over the poor IE CSS support for years and it seems that IE 9 will only bring marginally improvements (CSS border-radius and box-shadow) which IMHO just doesn't cut it.

    IMNSHO, it's not only about making IE faster and giving the customers/Web developers some perks like HTML5 video support. By leaving out HTML5 forms (like input type and placeholder support) in IE 9 (again, check Microsoft Connect to confirm that Microsoft has declined to support it in IE 9) will just give us an inconvenient feeling that before IE 12 is hitting the grounds, there will still be a split in Web development for modern Web browsers vs. Microsoft Internet Explorer.

    Luckily IE is on a steady decline, with less than 50% in Europe and less than 60% in the US which makes it easier to argument against building special workarounds into Websites to make them shine in IE.

    Last but not least, if IE would come up with the FileReader API support we finally could easily build multiple file upload features into Websites without quirky Flash or scripting based hacks.

    Oh well, but I digress. IE, even v9, will not be the browser of my choice because it is lacking too much features compared to other modern Web browsers. Sorry, Microsoft but you failed to catch up with your competitors and you should expect IE to drop more market share, even with IE 9 hitting the grounds.

  30. SiSL says:

    Hmm… Great, if my eyes does not cheat me, I'm seeing improvement on font rendering… on my 11px Tahoma bolds :p

  31. CarstonS says:

    I also see the IE sudoku tests execute faster in Chrome 8 than IE Preview 7. Maybe it depends on the processor. I have a developer class Dell i5 running x64 Windows Ultimate. Microsoft only tests on a dual core machine so maybe V8 does better on quad core than Chakra? I agree what matters is javascript performance on actual web applications and not benchmarks but running a few tests here I see Chrome 8 and V8 10% to 40% faster for my sites. I'm just dropping PIT markers when I enter and exit script and comparing the difference. I only see a 20% improvement in IE Preview 7 over IE8. Still much work to do on Chakra.

  32. kekekeke says:

    CSS3 is still in draft right? The problem with IE implementing drafts is that it will by default be the standard and then you guys will jump on MS again shouting "MS is using their monopoly to define standards" etc.

  33. Chess says:

    Good job on the JavaScript engine, welcome to 2009. Now get all the CSS3 things in and we'll consider using IE9 in 2010/2011, otherwise your still dead last no matter how much your JavaScript engine improved.

  34. Mike says:

    Please add CSS Transitions!!!!

    After all the great work the IE team has done, it would be a real shame if CSS Transistions were missing. Please add CSS Transitions!!!!

  35. Ben says:

    @Cheating: Why not take a peak at the comments on the blog post you linked to.

    @RF, I saw the same blurriness (Chrome Dev channel as well). Some bug with the video player.

  36. Just Me says:

    @kekekeke: Yes, CSS 3 is still in draft. But Microsoft already implemented a lot of CSS 3 and HTML 5 (which is also in draft) features into IE 9 but leaving out those a *LOT^ of Webdesigners are begging for.

    It seems that Microsoft is just cherrypicking the features they like and ignore others, even if their **customers** are asking for them almost every time over the past years.

  37. David Conrad says:

    I haven't been able to install any version since PP4. The Beta and PP6 both fail because there's a prerequisite, KB2028560, that can't be installed. (I never tried PP5, and haven't tried PP7 yet, but I'm about to). I've got a fairly new Dell XPS 1647 with Windows 7. I tried installing the fix standalone, and also tried some fix program from MSFT. No joy. Any ideas?

  38. steve says:

    If I run IE9 Beta and IE9 Platform preview 7 at the same time then my IE9 Beta will refuse to load new pages.  Closing IE9 preview 7 fixes the issue.

  39. David Bruant says:

    It sounds normal that IE beats everyone else at the SunSpider benchmark if some parts of the code are analyzed as dead code and then not run. That's not cheating.

    However, you have to agree that it's unfair to compare the result with other browsers. You're taking advantage of the fact that the benchmark is not well-designed.

    Moreover, if you keep saying that you want to be the fastest at "Real world web patterns", why do you keep running and showing results on a microbenchmark ?

    Create your own "Real world web patterns" benchmark! Show how quicker IE is to run actual current websites!

    In real world patterns, what is the proportion of dead code? how does this impact performance? Everyone get the qualitative idea ("reducing the size of the compiled program in memory and running the program faster"), but could you quantify this for "Real world web patterns"?

  40. Robert O'Callahan says:

    Adding the obviously-vacuous statement "true;" to the math-cordic code defeats Chakra's optimization. An optimization that works on math-cordic but not on the most trivial variations is clearly a benchmark-specific hack.

    Here's a challenge for Microsoft or one of their fans: find some other Javascript code of similar size and complexity to math-cordic where Chakra optimizes away the entire function as dead code in PP6.

  41. @David Bruant says:


    The whole is MS's real world web pattern benchmark.

    MS is doing whatever they can to improve. If a poor benchmark "breaks" because of this, it's not MS's fault.

    They show microbenchmark results cause many readers want it. so shove your stupid opinion.

    @cheat cheaters etc

    Read the update. kthxby.

  42. Ken Jackson says:

    I think the real question ppl have with the SunSpider test is why does DCE not kick in when you add a "true;" statement to the loop or when you have a return statement after the loop?  Neither of those should effect DCE of the loop.

  43. Peter Beverloo says:

    Guys, great work ๐Ÿ™‚

  44. @ Robert O'Callahan says:

    Maybe it's better to show how robust the "optimizations" that FireFox relies on for its Kraken score are? Alternatively, you can explain why someone would be calculating trig functions in JavaScript. FAIL.

  45. @Ken Jackson says:

    May be because IE team didn't optimize while thinking about this particular test. If they really wanted to "cheat", they'd have made sure that some minor variant of this code also triggers DCE to shut everyone up.

    And it seems this is the first "iteration" of DCE in Chakra. so it's obviously not perfect (and you can't achieve perfect DCE; at least not with loose js).

    "We continue to tune this for IE9, and bugs reported via Microsoft Connect are examples of where the optimization could do more. We continue to tune these and other optimizations for the final release."

  46. Stanislas says:

    Great Job ! thx for all improvements. continue to that way ๐Ÿ™‚

  47. THEY DIDN'T CHEAT says:

    You guys should actually READ THE BOTTOM OF THE BLOG. They explain the SunSpider results. >>>>>>>>>>>>>>>>>>>>>>NO CHEATING IS INVOLVED.<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

  48. Jace says:

    Nice work MSFT!

    If I asked really nicely, would you implement a lightweight spell checker in IE9 before RTM? ๐Ÿ™‚

  49. @@Ken Jackson says:

    My point isn't what the IE team was or wasn't thinking about.  But the IE team knows exactly why DCE didn't kick in on the examples given.  Without an explanation "cheating" looks just as likely as anything.  Now while I don't think they cheated, putting up a blog entry explaining what DCE is misses the point.  The people up in arms about SunSpider know what DCE is.  What they want to know is why does it seem to only fire on SunSpider.  That's a very reasonable request to make.

  50. fearphage says:

    If IE9 had a deadcode analysis engine, everyone would be rejoicing to some extent. The issue lies in that IE9 has something much closer to a "SunSpider benchmark detection" engine. If all code was optimized by this deadcode analysis, i think this would be a benchmark for all browser vendors to take note of. However, every browser vendor is capable of optimizing on a per-benchmark basis. That is far from stellar and frowned upon.

    If you change SunSpider slightly (which perhaps makes it unrecognizable as a SunSpider test?), you can then bring IE9 back in line with the benchmarks we have come to expect. IE9 is leaps, bounds and backflips beyond IE8. However, It is still catching up to other browsers in many aspects. Javascript performance is one of those.

  51. Kevin says:

    I want to believe you, Microsoft, but the question about the "true;" statement is a valid one. How is it possible that this would throw off DCE given a reasonable implementation? Answer that clearly, and you've won me back, because I really, really want to believe you've done a great thing here.

  52. Anders Borum says:

    I second the requests for more CSS3 support. Browsers are the future and if you're truly committed to reducing developer friction, start working on CSS3 support.

  53. oh guys says:

    @cheat, cheating, etc

    You don't even need to read ms's update, just read the comments on slashdot or hackernews links you post by yourself then you got the truth. dont just read the title or summery !

  54. Kevin says:

    After reading a bit on, I think I believe Microsoft. It appears that DCE is just very fragile. But, I also believe that Microsoft should have made this optimization more robust before putting it before a rabid community of, um, free thinkers.

  55. Awesome says:

    Wow, so addition of a no-op breaks your DCE algorithm. Yes, you have successfully proved that benchmarks can be hoodwinked. And that IE9 is actually at least twice as slow as the competition. And you cheated on the benchmarks. Nice spin job with this post.

  56. ieblog says:

    There will be a Chakra team chat on Twitter tomorrow.  Details are here:…/meet-the-chakra-team-live-on-twitter.aspx

  57. Nick Lowe says:

    Please, please, please get an implementation of HTTP Strict Transport Security (HSTS) in to the final of IE9. It's so important to prevent what is akin to a silent degradation attack which permits MITM to a secured site, such as banking. (Yes, technically, it's not degradation as the user requests HTTP but for all practical intents and purposes it is.)…/draft-hodges-strict-transport-sec-02

    Chrome and Firefox are covered now and hopefully Safari and Opera will follow suit…

  58. Prior Semblance says:

    Nice how everybody jumps at the first chance to say IE9 is cheating, even though it would be compeltely ridiculous to try to cheat on a test that anybody can check.

    Also, are the other browsers using DCE and if so are they using it on the test as well?

  59. MyTime says:

    Please, release IE9 beta2 with next IE9 Platform Preview.

  60. @MyTime says:

    The next release will be the release candidate

  61. ashish says:

    You are not give the preview of give the preview or snapshot.

  62. oskingen says:

    Congratulations! I really appreciate all the work around Internet Explorer 9. There are still more to do for css3, html 5 and also (please do something) for a better bookmark manager. It's better to wait longer and get something very good at the end.

  63. cheating or dumb? says:

    I don't think IE cheated specifically for sunspider, but that their DCE is extremely dumb. So dumb that it won't work on most real world cases of dead code blocks.

    So IE is saying that they are working on real world sites, but their extremely dumb DCE only functions on extremely limited cases that may work on some synthetic benchmarks but won't work on most real world general cases?

  64. fanbaby says:

    @Stifu, or what ever other degrading nick you chose, it seems you like Microsoft and IE a lot, and took upon yourself to defend them from 'trolls' as you say. IMO, you are doing a bear-hug service, as I read some posts above, see @Alexandre Bars.

    meni, an open patent-free standards fanboy

  65. hdw says:

    Great job I really appreciate the hard work you guys are putting behind IE9. Keep it up .Looking forward to the RC

  66. James says:

    Got caught pulling an NVidia! Fail.

    Seems your engineers don't have the chops to keep up with Google & Apple, but then we knew that for ages anyway.

    This incident just calls into question, yet again, how much of IE9's performance improvements are "real", and how much can only be reproduced by you, in your special lab, hacking IE9 to look good on benchmarks.

    Amusing, yet sad. Once upon a time, you had the best engineers, it's very clear that ship has sailed.

  67. NoName says:

    It probably won't do much but I'll post it anyway. For those asking for new features. Constantly putting it in blog post comments wont really help. If you really want to get a feature added, the best course of action is to open up a connect suggestion, then post the link somewhere and get all of your friends and like minded people to vote for it. Right now this is the best way to get the IE team to actually listen.

    The problem with blog comments is that they are very hard to take seriously, since in my experience, the people who post this kind of comment are the minority who just shout the loudest. This can be even more problematic since the software don't require you to log in with an email account to post comments, meaning you could be the same person posting multiple times. So use connect constructively, get a really high vote for these features to show a lot of people actually want them  and then you will have a higher chance of seeing them.

  68. hAl says:

    Even if the dead code in Sunspider were to run in IE9 the score still would be faster than the opera versions tested and it would be a toss up if Chrome 8 testbuild would be faster.

  69. Stilgar says:

    The font rendering in the new platform preview still sux. PLEASE FIX IT. I don't care if the design breaks when I zoom, I don't care if the new rendering is more correct I just want clear text!

  70. says:…/dead-code-elimination-for-beginners

    The Chakra DCE "optimization" handles ++ but not –, > but not <=, << but not >>. In short, it handles exactly the set of operators found in math-cordic, and not others. This makes no sense if it's intended to be a general-purpose optimization.

    Furthermore, Rob also points out that the optimization makes assumptions that aren't true for JS, leading to bugs where it incorrectly eliminates code that is not, in fact, dead. Fixing those bugs will be difficult; they require whole-program analysis or introduction of dynamic guards, both of which will slow the engine down.

  71. Matt says:

    So Google's V8 shamelessly favors Chrome. Mozilla's Kraken favors Firefox. But now IE is cheating for being faster on Sun Spider? Funny how some people get offended when eat dust!

  72. bazinga says:

    Why are you testing cutting edge version of IE, but older versions of Chrome and Opera?

  73. Fanboi Pundit says:

    Number one on the graph!  Congratulations!  Now hopefully everyone (fanbois and tech pundits alike) can move on from that silly test and focus on performance metrics that actually make a difference to real people.

  74. Harry Richter says:

    @ bazinga


    let me see:

    in the diagram there is

    IE: the latest pre-release version (PP7) and the latest released version (IE8)

    FF: the latest pre-release version (Beta 7) and the latest released version (3.6.12)

    GC: the latest pre-release version (8 Beta) and the latest released version (7)

    O: the latest pre-release version (11 Alpha) and the latest released version (10.63)

    AS: the latest released version (5.0.2)

    So the diagram seems to be complete to me, and fair, because for ALL browsers the latest released version, and the latest "cutting edge version" – as you call it – is being compared. Only Safari is only present once (no recent pre-release version available).


  75. Gixx says:

    HTML5: great work in html5 section elements:

    JavaScript: it's not my job to rate it. We're speaking about milliseconds! ๐Ÿ™‚ Faster than an eye blink.

    CSS3: I can't believe there's still no multi-column support. FF does. Webkit does. And even the new coming Opera will support for CSS3 multi-column. Please do your best and implement it in the final release with or without vendor prefix, because it's urgent! Nowadays a screen resolution at 1024*768 means a very outnumbered user group. 1280*1024/ 720p is now the general, and 1080p will became general soon.

    So there two cases:

    – Fix layout: you see an about 900px wide block surrounded by 1000px wide blank space. Looks awful, and tiring to read.

    – Flexible layout: you see a 1200+ px wide block. It's horror to read.

    Solution for both:

     /* column-count: 3;  — if you need fix number of colums */

     column-width: 300px;

     column-gap: 10px;

     column-rule: 1px solid black;

    Simple, elegant, comfortable.

    Please think about it.

  76. Esben Sundgaard says:

    Congratulations on now being the fastest browser! And thank you for explaining the โ€œDead Code Eliminationโ€ questions. Hopefully this will stop the flame baiters! ZDNet also has a nice article about it:…/2671

  77. HamsterKiller says:

    @ Harry Richter

    let me see again:

    in the diagram is

    IE: OK, latest pre-release version (PP7) and the latest released version (IE8)

    Firefox: Latest firefox pre-release is 4.0b8pre, not 4.0B7

    GC: Latest Google Chrome pre-release, is 9.0.576,  not 8.0.552

    Opera: Latest  Opera pre-release is 11.00.1085,  not 11.0.1029

    The main problem is not on picking some few days-weeks outdated browsers, results will be slightly different, the main problem is "optimize" (let me call optimize instead of "cheating") code for popular Benchmarks, run them and show how good is Javascript Engine…, and other problem is that IE9 is not the first that do this.

  78. John says:

    I'd rather have a compliant JS implementation than one that introduces bugs by wrong optimizations:…/dead-code-elimination-for-beginners

  79. Denis Hoctor says:

    We want real CSS3 support and more HTML5. It's been said to death but I just don't understand why you won't listen. Is marketing after these test results to sell the product? Win us web devs over and you'll have a chance at turning the decline around. Burn us and we'll ensure the trend continues.

  80. @HamsterKiller says:

    4.0B7 is the latest firefox beta, is it not?

    and 4.0b8pre is updated which day's should MS test? and finally, latest 4.0b8pre is horribly broken on many many websites. I have been using minefield as my primary browser for a long time and it was just fine even yesterday.

    tl;dr; nightly builds are not a good candidate in this case.

  81. Stifu says:

    @fanbaby: … what? I haven't posted here yet, and always post under the same nick.

    Also, in most of my posts, I do not defend IE nor Microsoft. But I don't blindly bash them, either.

    Please stop being stupid.

  82. Stifu says:

    @fanbaby: so you're referring to my comment on the previous article. I wasn't defending MS or IE. Also, I didn't mention "trolls"…

    Also, look for my second comment on that other article, and realize something is wrong you.

  83. mike says:

    this is cool stuff! – let me tap into the geolocation implementation here in IE9 to see who is nearby to celebrate this with…  hmm…. I keep getting "undefined"?!

    oh wait, yeah I was in IE when I did this! silly me, if I want to use modern browser features I have to actually use a modern browser!

    2010 and IE still doesn't do geolocation! come on, heck even the Windowz Fone se7en supports geolocation in IE.

    oh wait, does it? or was that the next biggest #FAIL_on_RTM ever?

  84. HamsterKiller says:


    You're right, If the test was made by me, I will put the November 17 snapshoot of each browser, but as you point this, for sure others will say me why don't pick 4.0b7 or November 15 snapshot that was 4% faster.

    Only wanna point on the fact they don't get the latest pre-release versions of browser.

    IE -> Stable 8, Beta IE9 Beta, Platform Preview: IE9PP7

    Firefox -> Stable: 3.6.12, Beta 4.0b7, Pre-Release: 4.0b8pre.

    Chrome -> Stable: 7.x, Beta 8.x, Developer: 9.x

    IE has made huge improvements on his browser, compared with IE8 is awesome. If IE9PP7 is better that Firefox, Opera and Chrome Betas it's very good, and with these numbers, it's much possible that it's faster than latest browser snapshoots for sure.

    The problem is "benchmark" optimizations, if there are, and we should find a "real World" popular Benchmark.

  85. Jan Mikula says:

    Text-shadow really need to be in IE9. It's the worst bug in support CSS3 in IE9.

  86. Ryan says:

    Please hide the "http://&quot; from address bar like in new Opera 11 build 1094 (same in chrome)

  87. Hugo says:

    I really wonder to which situation the term 'real world' refers to.

    On the one hand, in real world websites there is much dead code chakra has to eliminate. This implicates, that "real world" refers to web sites created by medium or low skilled developers.

    On the other hand it is stated that "micro benchmarks fail to represent the real world web". And: "Real world sites would actually use the much faster and CPU-optimized functions already available in JavaScript engines."

    Ah, would they? Isn't it a inconsistency in the article. I think, micro benchmarks perfectly represent the real world web by using not the best solutions for what they are trying to achieve.

    And what or where are the "other worlds"?

    I agree, that dead code elimination is absolutely necessary and a good approach. As a professional developer I have been involved in many proprietary closed source but also some open source projects over the last 15 years.

    I could only see one world, but two types of developers:

    The ones that nearly never miss deadlines, not being interested in code quality, most often looking for a solution that is "good enough" to fix a problem, also often using proof of concept code in production releases.

    And the others, to whom code quality and good robust solutions are more important than deadlines, always trying to improve their skills.

    Basically, developers of second type slowly are getting better software engineers. They would be interested to get feedback from chakra to remove or edit dead code before analysis of the code can take too much time and reduces the responsiveness of the page.

    Is it (or would be be) possible to have a debug mode in chakra that does extensive code analysis and reports it to interested developers?

    The others are served by optimized code analysis during runtime.

    That would enable developers to take active part in improve responsiveness of their pages, but doesn't force them to.

    I.e. when working with Visual Studio, I'm using additional tools that help me optimize my code (and not leaving dead code in production releases).

    I would be very interested in getting feedback by the original compiler how I can support him to optimize code.

  88. text-shadow says:

    PLEASE!!! text-shadow

  89. border-image and text-shadow says:

    should be easy and REALLY helpful.

    more helpful than pointless performance tests anyway.

  90. Andrius Bentkus says:

    In the video you picked the slower competitor to make IE look better, but still, it is not that bad for IE, probably one of the last closed source on the market.

  91. 6205 says:

    Why you cannot annouce IE9 roadmap? Why is it so secret? It makes no sense..

  92. Klimax says:

    @Mike: Geolocation – is it finished spec which is usefull to desktop and notebooks? No,then it is unnecessary (altough I suspect it ยจll be ready for WP 7)

    @6205: Maybe because they don't know how many features will have specs finished for proper inclusion without vendor prefix?

    However, it is interesting they they almost stopped commenting – almost as if busy…

  93. Stan says:

    It would be nice to try this out, but why do you not allow the Platform Preview to install on Windows Server 2008 (R2)? That's my dev machine OS, so I'm SOL.

  94. Ing. DI (FH) Mag. Dr. Hans Wurst, MBA, CMC says:

    @Hugo: Business informatics major here, what you say is heretic, deadlines are carved in stone, esp. when determined using one of the many magic hocus-pocus techniques available (some involve the third root of something, I am not joking). Whatever works is good enough, trial-and-error programming the best and testing and documenting are a waste of time, VB and PHP good programming languages and and if you don't work our way then we will have to outsource you.

  95. wetran says:

    @ Hugo,

    "And the others, to whom code quality and good robust solutions are more important than deadlines, always trying to improve their skills.

    Basically, developers of second type slowly are getting better software engineers. "

    Or quickly get themselves kicked out of any business. Really, in business, nothing is more important than deadlines. If you don't meet your deadline, well, you may get away the first time, but you'll surely get fired the second time. Or if it's your own business, then you'll lose your customers to competitors who meet deadlines with lower quality code.

    Which means, unless you have plenty of wealth to sustain yourself and your family over long periods of unemployment, most people cannot afford to be this "second type". The best practice is to produce high quality code within the deadline, but if you are force between a choice of code quality and deadline, well, working code before the deadline >>> good quality code overdue, if you still want the job that is.

  96. Hasan Hashmi says:

    Did it mean that we will not write some CSS and rare java script fixes for fixes only for IE any more?

    How will they stop IE6,IE7 and even IE8 on web or make sure that if some thing works or runs ok in one version then it will be ok in all?

  97. Prior Semblance says:


    I think most developers can just focus on IE8 and IE9 now, maybe with partial fixes for IE7. I think even google stopped supporting IE6 earlier this year.  If websites keep supporting IE6/7, then people using those browsers will only upgrade when they are forced to buy a new computer with a new version of IE installed.

  98. Brian says:

    Ryan said:

    "Please hide the "http://&quot; from address bar like in new Opera 11 build 1094 (same in chrome)"

    i second this

  99. thenonhacker says:

    Those sheep who don't read the entire articles entitled "IE 9 Caught Cheating?" — STFU, ok? If you read the entire article, you will find out that the answer to the question is "NO, it's Not cheating."

    Second, this all the more proves that the SunSpider Benchmark is Not a reliable Benchmark, because it's Not fool-proof. You have to fake math-cordic tests such that results will favor your favorite browser.

    And you're fine with Google's V8 JavaScript Benchmark test favoring Google Chrome? Well I think they are cheating, too.

  100. thenonhacker says:

    Those sheep who don't read the entire articles entitled "IE 9 Caught Cheating?" — STFU, ok? If you read the entire article, you will find out that the answer to the question is "NO, it's Not cheating."

    Second, this all the more proves that the SunSpider Benchmark is Not a reliable Benchmark, because it's Not fool-proof. You have to fake math-cordic tests such that results will favor your favorite browser.

    And you're fine with Google's V8 JavaScript Benchmark test favoring Google Chrome? Well I think they're the ones who are cheating.

  101. thenonhacker says:

    And now, I'm gonna scold the IE9 Team:

    1. You gotta optimize for all operators. < works. >= doesn't.

    2. Mozilla proves that the SunSpider Benchmark is lacking. They tackle passing Objects instead of integers in parameters. This will make your optimizations fail.…/dead-code-elimination-for-beginners

    3. The math-cordic-return and math-cordic-true — fix that. So that the idiots who are vindictive with your company will shut up.

  102. dlh2009 says:

    People have to also realize, that depending on your computer's hardware, the SS Benchmark is going to be different for each platform. I give kudos to the IE team for beating out all the rest of the browsers but they are going to have to keep sending updates out to IE9 when it is finally released to compete with the other browser vendors on java script tests.

  103. Undecided says:

    Let's assume for a moment IE is the best at sunspider and the "optimizations" are real. Congratulations Microsoft. Now. Why are the slowest at every other single benchmark in the world including V8, Karken, and PeaceKeeper? You're have to be optimizing for sunspider instead of making the javascript engine faster. Your story doesn't hold.

  104. Undecided says:

    The Soduku tests also run faster on my laptop in Chrome 8 than IE9P7. Fishy.

  105. @undecided says:

    @Undecided, may be it is very same reason why other browsers suck in IE HTML5 demos ๐Ÿ˜‰ Except for Sunspider, V8 is for Chrome-optimized benchmark, Kraken is for Firefox… Get a grip

  106. giuseppe says:

    what Hugo (18 Nov 2010 4:21 AM) said.

    @wetran: you are part of the problem

  107. Juan says:

    Is there any plans to release Chackra as an embeddable component?. I'm using IronPython right now but i was wondering if it was possible to use chackra as a replacement.

  108. iNsuRRecTiON says:

    Hi there,

    you wrote: "Weโ€™ve focused on improving real world site performance. Weโ€™ve made progress on some microbenchmarks as a side effect. Focusing on another subsystem microbenchmark is not very useful. "

    Sure that is true, but wait, why all the other webbrowsers out there are faster on the other benchmarks AND fast on real world scenarios and websites?!

    Your competitors aka Google Chrome, Apple Safari, Opera Softwares Opera and of course Mozilla Firefox, all are much faster in

    Mozilla Kraken:, Google V8 benchmark:…/benchmarks.html, Mozilla Dromaeo: (very important because of much tests incl. DOM..!) and Futuremarks Peacekeeper:…/index.action (very important because of much tests..)!

    You don't have to be only fast in real-world scenarios, but in the benches, too!

    Neither only in microbenches being fast, but not in real-world scenarios, nor being fast only in real-world scenarios, but not in microbenches is good!


    iNsuRRecTiON from Germany

  109. Biff says:


    It important to note that kraken was made by Mozilla, the developers of firefox, V8 was made by Google, the developers of Chrome, and Dromaeo was made by Mozilla, the developers of Firefox.

    Peacekeeper is unfortunate in that although the one impartial benchmark, is just plain terribly written. It does reveal some weaknesses in IE, however it is critically flawed in that it contains tests which only execute in Internet Explorer but are skipped otherwise, This bug lowers IE's score dramaticly…/020664.html

  110. iNsuRRecTiON says:


    Is IE9 PP7 now any better there:…/five_web_browsers_which_is_the_fastest ???

  111. iNsuRRecTiON says:

    @ Biff

    Thanks but I know this.

    But why is e.g. Opera one of the fastest in e.g. Mozilla Kraken? Optimized by Mozilla for Mozilla Firefox..?!

  112. Jd says:

    A graph which does not have both axes labeled in context is useless. Unless I already know what the benchmark is testing, how am I to interpret the numbers on the vertical axis. Is 4000 better than 3000? 4000 what?

  113. Why? says:


    "Neither only in microbenches being fast, but not in real-world scenarios, nor being fast only in real-world scenarios, but not in microbenches is good!"

    I don't see why you think that.  Being fast only in real-world scenarios, but not in microbenchmarks is exactly as good as being fast in real-world scenarios and in microbenchmarks.  There is no intrinsic value to microbenchmark performance whatsoever.  The purpose of a web browser is to browse the web, not to run sunspider or kraken or whatever the fastest.

    Microbenchmarks are an attempt to simulate real-world scenarios — ultimately an inherently flawed attempt.  The only value in a microbenchmark is in how well in reflects real-world scenarios, so by definition, a browser cannot be good at real-world scenarios and bad in a good microbenchmark.  Either the microbenchmark is bad, or the browser is also bad at real-world scenarios.

  114. slipstream says:

    @ RF

    This blurriness is caused by a known bug in GPU Accelerated Compositing in Chrome:…/detail

  115. wetran says:

    @ giuseppe,

    "@wetran: you are part of the problem"

    nope, you are the problem since you don't realize that people need money and must feed themselves. Unless you can convince all the businesses out there to delay deadlines for highly quality code, where most people can't, then you can't do anything by sticking with "higher quality code > deadline" ideology except starving yourself and your children to death.

    The truth is, 99% of the web developers out there won't be able to find any job around their place if they tell their boss "code quality > deadline", welcome to reality. High quality code is nice, but not nice enough to get yourself and your children dying for.

  116. anonym says:


    You're out of your depth here. You may be feeding your family for a week because the first few gullable customers shell out for you. Then the negative reviews pour in and your sales will fall. Then you whip up the next revision at lightning speed (based on the bug-ridden release of course, and charging for this Software(tm) 2.0); you'll continue this scheme until a smart competitor sees how you botch things up and *does* fill the market's need with a quality prosuct, making a handsome profit and gaining the public trust whereas you had been running the threadmill for minimum wages and no loyal customer base at all.

  117. Ali says:

    IE 9 preview 7 result of the Sputnik JavaScript conformance  test its getting better and better in every preview but still fail on 76 out of 5246 test.

    but about the V8 Benchmark Suite

    IE 9 Beta Score is :

    Score: 1413

    Richards: 1889

    DeltaBlue: 1816

    Crypto: 3790

    RayTrace: 743

    EarleyBoyer: 1810

    RegExp: 244

    Splay: 2640

    IE 9 Preview 7 Score is :

    Score: 1985

    Richards: 2298

    DeltaBlue: 2129

    Crypto: 3432

    RayTrace: 916

    EarleyBoyer: 3636

    RegExp: 854

    Splay: 2540

    Google Chrome 7.0.517.44 Score is :

    Score: 5130

    Richards: 4716

    DeltaBlue: 5567

    Crypto: 5566

    RayTrace: 6767

    EarleyBoyer: 14856

    RegExp: 1992

    Splay: 3194

    Firefox 4 Beta 7 Score is :

    Score: 3102

    Richards: 6026

    DeltaBlue: 4135

    Crypto: 5609

    RayTrace: 1516

    EarleyBoyer: 3739

    RegExp: 1248

    Splay: 2797

    as you can see Ray trace and Reg Exp is pretty low please IE Team Fix it Please !!!!!!!!!!!!!!!

  118. Chutzpah says:

    @anonym – hmmm, Microsoft have excelled at releasing average code post deadline and still getting away with it.  Microsoft is an Excellent marketing organisation who have built an absolute empire with their uncanny ability to distract the digital heard from all the failings of it's software.  Even now, some 30+ years post incorporation Microsoft still hasn't seen a steady decline in profitability, merely a gradual (read slight) decline in profits.  Even the last quarter (year?) produced a sizeable boost in profit taking turning around this apparent degradation (what, 16.2 billion or up by 25% last quarter??).   Them, Thar's a lotta short-term grub tuh feed the famuhly…

  119. Stifu says:

    @wetran: it doesn't take more time to write good code than to write bad code, quite the opposite. Unless you have a whole shitty program or site to rewrite or improve, in which case that's because it was badly-coded in the first place.

  120. wetran says:



    You're out of your depth here. You may be feeding your family for a week because the first few gullable customers shell out for you. Then the negative reviews pour in and your sales will fall. Then you whip up the next revision at lightning speed (based on the bug-ridden release of course, and charging for this Software(tm) 2.0); you'll continue this scheme until a smart competitor sees how you botch things up and *does* fill the market's need with a quality prosuct, making a handsome profit and gaining the public trust whereas you had been running the threadmill for minimum wages and no loyal customer base at all."

    Clearly you are out of the reality here. what's the use of your high quality code when your family all died starving because you can't feed them for weeks? And it's the customers who set deadlines, and if you can't meet THEIR deadlines, you are out of job already. Clearly you haven't tried to convince your customers and/or bosses to push back deadlines set by THEM so you can produce better quality code, I have tried many times before, and I can tell you it's IMPOSSIBLE to delay deadlines. The customer will threaten to ditch you, and your boss will threaten to fire you, and as a lowly developer, there's nothing you can do. I could care less how much dough the customer shell out, since they do not shell out for me, but for my boss, or the boss of my boss, or the boss of the boss of my boss. You should go talking to all those bosses and customers who set extremely straining deadlines and force the developers to meet the deadlines by whatever means.

    I'm talking as one of the developers out there, who have to suffer through all these things, and if you go up to your bosses and tell them you think code quality > deadline, you'll not be able to get a job at all. Similarly, a business won't get any customers if it can't meet the deadlines set by the customers. Your "smart competitor" who produce overdue quality product won't get any customer at all, and will starve to death in no time. The only choices in the real world are either 1) produce a quality product by the deadline, or 2) produce a working product by the deadline. Producing a quality product without meeting the deadline is NOT a choice, since you'll be kicked out by your bosses/customers when the deadline passes before you finish the product.

    Maybe you can feed your family with ideologies, but as real people, we need our jobs to feed ourselves and our families, and every business out there are the same regarding deadlines, deadlines >>> code quality for them, and a lowly developer like me and 99% of the developers out there can't do nothing about it, despite how much we wanted and how hard we tried, the only we developers can do is to try produce as good quality code as possible within the extremely short time given to us before the deadline. You really should wake up and face the cold, harsh reality now.

  121. Stifu says:

    @wetran: either you're a slow worker, or you're working for unreasonable people (in which case you should grow balls and find a better job).

    Good developers don't advocate bad coding practices.

  122. devilss says:

    Cheating??  Yes we can!!!!

  123. @Stifu:

    "Good developers don't advocate bad coding practices."

    It may be true. Unfortunately, good developers rarely share about their misfortunes. All they talk only about their successes, and not their failures. I sometimes see missing balances in their stories. Perhaps, it's good at motivating others, but sometimes it's not the whole story to tell the whole truth.

    Writing a high quality code is a good advice and it's initially a good hope as well. Unfortunately in this real world, it can be a reality or it can't be. It's good if it could be a reality. But when it becomes INFEASIBLE due to constraints (time, budget, people, other resources, etc.), then one can't deny that he/she can't achive his/her hope. One may hope for the best, but *** can happen as well.

    So, good hopes and advices are generally wise, but the truths are wiser and undeniable.

  124. Tom says:

    Are Web Workers and Web Sockets supported?

  125. WillyDev says:

    Really Great Work.

  126. @ieblog says:

    "There will be a Chakra team chat on Twitter tomorrow."

    Can we get a "transcript" of the whole chat session? thanks in advance.

  127. @Why says:

    Nope, I think it is impossible to get fast on all "real" websites nor to test this.

    But you can test all microbenchmarks, if you're not good or much slower compared to your competitors (like IE9 PP7 is..!), then something is not ok in your browser/subsystem/JS-engine, etc.

    There must somethink wrong, if all other webbrowser are so much faster in these benches, but IE9 is much much slower..

    They have to be in both real world and microbenches fast as possible, or something is wrong.

    @Tom Unfortunately no, no web workers, nor web sockets support, I want this, too!

    And yes, IE9 have to be fully compliant and pass the Google Sputnik Javascript test, as Ali already mentioned!

  128. iNsuRRecTiON says:

    Sorry, the last comment was from me to Why ๐Ÿ™‚

    Link for Google Sputnik Javascript conformance test:

  129. doomer says:

    Microsoft should toggle the sunspider chart because with the "dead code elimination" the tests are simply skipped, thus invalidating the result and the purpose of these kind of tests

  130. Richard Moore says:

    I wrote the cordic code in sunspider, and all I'd say is good work! Ideally the next version of the test would have both a version that returns the result and a version that doesn't so that the effect of eliminating dead code is included in the way results are measured.

  131. Beat says:

    We want websockets and webworkers!!!

  132. Anonymous says:

    Although improving javascript performance isn't a bad thing, you really need to implement CSS3 transitions.

    CSS transitions are much more important than a spinning earth or solving a sodukio games 1000 times.

    Let's think of real world scenarios.  People could actively use CSS transitions in sites to improve user interaction and clarity.  If you wanting to solve a soduko game 1000 times why wouldn't you just do that server or better yet who would need to continue to the soduko game after solving it once?

  133. Anonymous says:

    @ iNsuRRecTiON

    @ Ali

    Do do realized IE9 has the second best score on the sputnik conformance test right?

    the latest firefox nightly fails 178 test

    Safari fails 170 tests

    The latest chrome nightly fails 130 tests

    IE9 pp7 fails only 76 tests

    Only Opera bests PP7,  at 74 tests failed


    You might get web workers if enough people keep asking for it, however websockets is too unstable for Microsoft to implement, see for a brief discussion lamenting the state of development. The way it's looking, no browser's implementation will be compatible with the new standard when it is updated.

  134. Ali says:

    Yes I know about that but to be the best of all you must be perfect, IE 9 come to 76 from 469 fail on IE 8,

    my concern is about V8 benchmark which is pretty low compare to other browsers.

  135. Beat says:

    @Anonymous: Tanks for the input.

    @Microsoft: We want web workers!

    @All: Keep asking Microsoft for web workers ๐Ÿ™‚

  136. wetran says:

    @ Stifu

    "@wetran: it doesn't take more time to write good code than to write bad code, quite the opposite. Unless you have a whole shitty program or site to rewrite or improve, in which case that's because it was badly-coded in the first place."

    then you shouldn't need to delay the deadline in the first place.

    then you should really tell that to Hugo, giuseppe and anonym, and I don't know why you are replying to me here, since they are the ones who keep insisting on the idea of  "missing deadlines for better code quality".

  137. wetran says:


    "@wetran: either you're a slow worker, or you're working for unreasonable people (in which case you should grow balls and find a better job).

    Good developers don't advocate bad coding practices."

    Good luck on finding "reasonable" bosses and customers in this world. You can grow balls all you want and you still won't find any job that don't have "unreasonable people" as your bosses and/or customers.

    For the past ten years, I've worked for all kinds of IT companies, ranging from small private company with only a dozen people, to the local branch of Google and IBM with thousands of people, and they are all the same. And it's not just me, I'm surely no slow worker since all my colleagues face the same situation. Deadline is king. For example, when I worked in Google, they don't check on work attendance, they don't care whatever you do during your work time, but the only thing they require is completing your assigned work by the deadline. Yes you may see them delaying projects at times, but that's a privilege of the higher-ups, the "worker ant" developers (which counts for more than 99% of the developers out there) who wrote the bulk of the code have no choice but to meet deadlines assigned to them. If you think you should "find a better job", then no matter how large your balls are, you will end up with no job at all.

    I don't advocate bad coding practices, I'm just telling some people that their ideological view can't really hold in this cold, sad reality.

  138. MS - The winner says:

    WOW: so many comments!

    Wishlist (to-do list from the users):

    complete missing CSS3,


    google's test with 0 failures and agile regex,

    acid3 with 100% score,

    display current tab's title on the top of browser (may be appended with – Internet Explorer 9),

    something comparable to FF's flash-got plugin which can grab silverlight streams too,

    add create-new-download option so user can also manually enter url to the file in IE9's download manager,

    show transfer rate in download manager while downloading,

    globally accessible bookmarks in bing-toolbar with categories (as in g-toolbar),

    multi-file-upload (without flash),

    resumeable upload (if possible create a new protocol RFTP) ๐Ÿ˜€

  139. zzz says:

    Many of the people whining here are already regular users of other browsers judging from their comments. I've been with IE since v4, I've given every other browser couple opportunities and they have all failed basic requirement.

    IE9 is the first time I have to consider not upgrading. That's if the blurry fonts and lack of space for whatever bars I want to have the most space for stay.

    IE9 will be the first IE to fail basic user, not developer, requirements it seems.

  140. hAl says:

    This wish

    acid3 with 100% score,

    is never going to happen as the smil elements in the test that are not supported are already supportable trough javascript and are obsolete.

  141. nbutton says:

    It seems that dynamic content or changes to styles are not rendered when printing from IE. I've made a web page that contains a small javascript drawing program, but when I print the drawing in IE I just get the blank page I started with. Is this an inherent property of IE or am I just missing a step. It works in Firefox but not in IE, or Safari for that matter.

  142. bully says:

    m$ cheaters

  143. NeedTvSupport says:

    H264 AND Mpeg2 represents all transmitted TV, plus all DVD and BluRay content.  If browsers had support for these in the new tag all browsers and devices would be media players.  Think of what you could do if everyone got behind this…

  144. @bully says:

    deep inside you love 'em… while enjoying the most luxurious operating system, i.e. Microsoft Windows <;

    ~ Hail My-crow-soft !

  145. Ryan says:

    Please add resizing textarea to IE

  146. Ryan says:

    IE9 is gonna rock the web!

  147. yellowstone says:

    IE9 : .WDP(JPEG XR Filename extension) Support.


    IE9 : .hdp, .jxr(JPEG XR Filename extension) – Not supported(Support Has upset)

    IE9 -.hdp, .jxr(JPEG XR Filename extension) Support.(Support me wind sigil)

  148. IPv6 vs. IPv4 says:

    I want to be able to specify which to be given priority when DNS answer both the address of IPv6 and the address of IPv4.

    1) The speed of the line in IPv6 is slow.

    2) There is often a homepage only in IPv4 even if there is an address of IPv6.

    The homepage takes it for these reasons, and normally it is not displayed, and it will take time it is possible to display it. If whether it gives priority to the address of IPv6 or the address of IPv4 can be specified, this problem can be evaded.

  149. Prior Semblance says:

    Considering how close we are to running out of ipv4, I don't think IE should go out of its way to encourage its use.

  150. Bug says:

    @Web Developers IE9 and Chrome9 does not fit together. For some reason, uninstalling Chrome9 Canary Builds improved IE9 speed greatly…

  151. anonym says:

    wetran wrote:

    then you should really tell that to Hugo, giuseppe and anonym, and I don't know why you are replying to me here, since they are the ones who keep insisting on the idea of "missing deadlines for better code quality".

    I don't know where you're from, but here (good) software developers are highly sought after professionals. Any boss will cherish (good) developers here.

    Good developers give feedback early in the project about (un)realistic deadlines. Bosses take us seriously. Good code, development process, structural analyis, etc. (e.g.: the tools any good developer would use) ensure the deadlines are met.

    Announcing lateness two days before the deadline is not appreciated, and does not define a good developer.

  152. Wayne says:

    You say that the reason that you're releasing Platform Previews is because you wish to "evaluate browser performance with real-world scenarios" and "the point of a browser is to run actual websites, not just benchmarks or samples that are hardwired for one browser". Why then, do you not update the IE9 beta on a regular basis, perhaps the same frequency as the Platform Previews?

    You have to know that people downloading the Platform Previews aren't, for the most part, evaluating browser performance with real-world scenarios, and that they're mostly running "benchmarks or samples hardwired for one browser" (ie the Test Drive suite). The people who ARE evaluating IE9 in real-world scenarios, and using the browser to run actual websites, are the people who have downloaded the full-fledged IE9 beta. However, these are the same people who are being snubbed by MS developers, where instead of receiving updated beta releases for their browser, MS is releasing crippled "Platform Previews" for people who just want to look at fishbowls, or play pinball or sudoku.

    Releasing a bunch of updated Platform Previews without releasing the same updates into the Beta tells me that MS is doing this mostly for show and good PR, rather than trying to release a quality product.

  153. Peppe R says:

    I've been pretty dedicated to Firefox & Google Chrome since IE has left me with pure disappointment. After testing the IE previews, then using Beta since release – I found myself using Chrome & Firefox less and less. Although, tt took a little while for me to gain trust from IE; I'm overall very impressed. I hope your team doesn't fall between the cracks. Don't even know why you guys let IE slip up so bad before – but nonetheless, keep up the great work!

  154. @Wayne says:

    In the release notes of those platform previews, MS has announced that those are meant not only for the freaking game players or hypnotized JS performance evaluators, but for the "web developers" who will test the browser performance with and beyond IE-test-drive samples and ideally send them feedback.

    If you analyze their bit-changed approach of developing IE9 more critically, you will understand that they are not wasting time on QA by themselves but they are asking for user feedback and make the fixes accordingly in those nightly-build PPs (extreme-programming). Earlier they used to release beta and then keep updating the beta as per the user feedback. But now that interim PP is not a right choice to judge performance as a current-release of IE9 because unlike beta, PP is not even a semi-stable release. Surely, MS will update the beta (Beta2 or RC1) after "achieving" & "testing" certain milestones (via PPs) they have planned for the next semi-stable or stable release.

    In fact, the guy at Mozilla who pointed out that so called "cheating in Chakra" was supposed to book a feedback but his (cry-wolf) way of sending feedback exhibits hatred and professional jealousy that is understandable. (remember how mad the non-MS AV guys are these days due to the outstanding performance of security-essentials at free of cost!)

  155. Mark says:


    *.jxr extension support can be added to IE9 and windows by running a .reg file i wrote at this address here:

    I hope the IE9 team add these registry entries with the RC release.

  156. Mark says:


    unfortunately that link seems to rename the download to *.txt. use this link instead for a zipped version:

  157. the_dees says:

    Slightly off topic,

    I'm getting E-Mail from

    The mails look like Connect notifications but include a incorrect (phishing?) adress that is not ping-able. Can I do anything but ignoring it?

  158. @the_dees says:

    If you are using new web-based Hotmail you can enjoy the luxury of "sweep" functionality and wipe out the to ever daring contact you again…

  159. wetran says:


    "I don't know where you're from, but here (good) software developers are highly sought after professionals. Any boss will cherish (good) developers here.

    Good developers give feedback early in the project about (un)realistic deadlines. Bosses take us seriously. Good code, development process, structural analyis, etc. (e.g.: the tools any good developer would use) ensure the deadlines are met.

    Announcing lateness two days before the deadline is not appreciated, and does not define a good developer."

    I don't know where you're from, but giving feedback early in the project is part of *setting* the deadline, not *changing* the deadline. Once the deadline is set, it's next to impossible to change unless it's from the client's request, or from the higher-ups. Also most developers working in large teams don't have a say in setting the deadlines, for example in Google, the ones who can have any say in setting the deadline are PMs and program leads, not those "worker ant" developers who do the bulk of actual coding.

    So if you have actually read my post, I was specifically replying to Hugo's "to whom code quality and good robust solutions are more important than deadlines", and my point is exactly that, you can't say "code quality and good robust solutions are more important than deadlines", you can say a good developer/PM should help setting good deadlines, but once it's set, the developers must do whatever they can to meet the deadlines, they can't delay the deadline by saying "code quality and good robust solutions are more important than deadlines", that'll just get them kicked out of the business.

    Also a lot of time, even if you are a "good developer" and you want to have the deadline set for a more reasonable time, you can't do that since the client has some "hard requirement" about the deadline. For example there are often clients who asks to have a website set up in two months from scratch, because they'll have some event in two months and need the website by that time. And they'll just find those who promise to meet that deadline to do the job, they'll not listen to anything about "good code quality", they'll just put down the cash and let anyone who can do the task to get it, and bosses never refuse good cash, they'll just tell you to get it done and don't mind the "code quality".

    I don't know how many projects have you done, but in my ten year's experience ranging from small private companies to big ones like Google and IBM, yes as a head developer you can argue for more time when *setting* the deadline, but more often than not you'll not be able to have any decisive say in it, and even when you manage to get some extra time, it's often far less than what you asked. And if you are one of the "worker ant" developers, then you won't be able to have any say at all. For smaller companies, you may be more important, but the client's need is king, and even your boss has to comply to them. For larger teams, you'd have to be the PM to really have any influence.

  160. @ IE.Team says:

    1.  Tabbed browsing is an integral part of Web-browsing and Without tab management IE is not good for tabbed Browsing

        Opera recently implemented Tabstacking in their v 11 beta .. its a good feature .. I think it would be great if IE implemented it too albeit with

         some improvements like colored stacks etc…

    2.  Also please provide some sort of visual feed back to show if the page has loaded or not …. please …. this is a must in 3rd world countries where the net connections are

       not so stable

      Please look into these matters and thanks for showing the transfer rate in the download manager ๐Ÿ™‚

  161. James Hawk III says:

    One thing:  Galactic is fast as all get-out, but it would have been nice if the author had mentioned DirectX as the reason for the graphics performance.  That lack was a little too "propaganda" in my opinion.  Other than that, this seems to be coming along nicely.  For all those who whine about not having CSS-this or geolocation-that, give it a rest.  It's a beta.  These things will be along presently.

    @wetran: Aye, and double aye.  Here's a story from when I was a project lead:  the PM for a project came to me and asked me when I could deliver the app update for customer testing.  I told her Thursday.  She told me they wanted it on Tuesday.  Thursday, I said, and not a day sooner, because that was the original schedule.  Tuesday, she repeated.  So I told her, and I quote, "then tell them to tear Tuesday off the calendar and paste it over Thursday, because that's when they're getting it."  We delivered on Thursday and it was on spec, no bug send-backs.  That PM learned not to argue with me again.  The customer learned not to try to accelerate the schedule.

  162. the_dees says:

    I've just filed two calc() issues, see…/625000 (multiplications are of higher precedence than divisions) and…/625001 (parenthesis are not supported)

    Currently, there are a few incorrect calculations done using calc(), these should be must-be-fixed issues because Firefox 4 will support calc() as well.

    In Firefox the expression is prefixed, but works correctly. Since authors are likely to do



    it seems preferable to have two nteroperable implementatiions.

Comments are closed.

Skip to main content