Performance of browser plugin based RIA vs. Java Script based RIA
For my data intensive web application (heavy forms & complex reports), from performance standpoint, which is better ... a browser 开发者_StackOverflow社区plug-in based RIA (say SilverLight) or Java Script based RIA (say ExtJS)?
At this moment, we can avoid the discussion of plug-in availability, etc. My only focus is performance. Reasoning will be appreciated.
Computationally, Silverlight will win out compared to Javascript, no contest, especially with Silverlight 4 (twice as fast computationally). But I don't think raw number crunching performance is necessarily the most important thing, Chrome's Javascript engine is 10x faster than IE8's, but a web application in ExtJS isn't nearly 10x more responsive. How fast the object model is manipulated seems more important and HTML seems to be at a disadvantage here, because it's not really built for complex controls like grids in ExtJS.
If you look at the HTML generated by an ExtJS grid here, it goes 13 layers deep from the outmost container of the grid to the content of a cell. All those layers to trick HTML and CSS into doing the right thing.
And while I'm speculating a bit, it stands to reason that Silverlight's object tree is a lot flatter, because well, it can be as it's built to do the things it does. Add to that Silverlight's hardware acceleration and it will definitely win out in the performance department, but regardless of that I also think that performance is not very quickly a bottleneck when using a framework like ExtJS. It's still fast enough, usually.
Hard to say because it depends on so many variables. But you might want to check out Bubblemark. On that particular benchmark, Silverlight 3.0 (with bitmap caching enabled) does well, but a lot depends on the browser you're using. Javascript with Chrome comes pretty close to Silverlight's rendering performance. See also http://www.youtube.com/watch?v=gqjidzjkMM0.
If you use Silverlight and can access your WCF backend using Net.TCP, you can get pretty good data access performance as well. I would expect it to be somewhat faster than JavaScript (since it doesn't have the HTTP overhead), but I don't know how it would compare to accessing FMS via RTMP.
精彩评论