“String” Performance on IE

From RuntimeWiki

Jump to: navigation, search

NOTE: This feature has been moved to the inactive list because at the F2F meeting, we were told IE8 has addressed this performance issue.".

Contents

Title

“String” Operation Performance on IE

Detailed write-up

Description

IE performs worse than FireFox and Safari in general. Beyond the areas that all browsers have problems, String manipulation deserves particular attention for IE.

String compares and concatenation on IE6 are super bad. IE7 has made progress on this. But it still lags behind by a few hundred percent comparing to other browsers. For example, according to reference A Study of Ajax Performance, the following table shows a comparison between IE7, FireFox and Safari in terms of "String" operation performance:

Operation                       IE7   FireFox  Safari 
                                (us)    (us)    (us)
Simple string concatenation	4.7	2.3	1.6	
Simple string compare		3.9	2.4	0.8		
Change string to upper case	11.7	3.9	4.7	
Replace string reg expression	12.5	7.1	9.4	
String concat with integer	7.1	4.7	2.4	
String concat with float	6.3	4.7	2.4		
charAt(10) in string		11.7	6.3	3.1	

Why Is This Important?

  • Every application involves String manipulation. Part of the appeal of Ajax is the benefit of leveraging client side processing power, which naturally leads to a lot more String manipulations on the client side;
  • As pointed out by reference [1], most non-trivial blocks of JavaScript code today rely on innerHTML to bootstrap some new chunk of DOM in response to user action due in large part to the cross-browser speed and size advantages of innerHTML vs. raw DOM methods for equivalent DOM structures. Because building innerHTML is essentially String manipulation, the performance of string manipulation heavily influences the performance of Ajax applications.


Background material that request this feature

Discussion

Phase I Voting - Vote for Your Top 5 Features

NOTE: PHASE I VOTING IS NOW OPEN. (2008-04-01) We have now changed the voting procedure. Instead of putting votes on each separate wiki page, we are asking people to cast their Phase I Votes on the following wiki page:


Phase II Voting

More about this later.

Personal tools