Rule: Consider using local variable instead of global variable.
Rule: Avoid using eval() or function constructor.
Rule: Pass function, not string to setTimeout() and setInterval(). Passing stirng is same as calling eval().
Rule: Avoid using with().
For-in loop vs for loop
Slow:function forinloop() { var count=10000; var arr=new Array(); for(var i=0;i<count;i++) { arr[i]=i; } var value=0; for(var index in arr) { value+=arr[index]; } }Faster:
function forloop() { var count=10000; var arr=new Array(); for(var i=0;i<count;i++) { arr[i]=i; } var value=0; count= arr.length; for(var index=0;index<count;index++) { value+=arr[index]; } }
Rule: Avoid using for-in loop, instead use for() loop.
String concatenation vs array join
Slow:function stringcat() { var count=10000; var str=""; for(var i=0;i<count;i++) { str+="first,"; } }Faster:
function arrayjoin() { var count=10000; var arr=new Array(); for(var i=0;i<count;i++) { arr[i]="first"; } var str=arr.join(""); }
Rule: Avoid string concatenation and use array join. The performance difference in significant only in IE 7.
Inbuilt functions vs primitive operations
Slow:function mathmin() { var count=10000; for(var i=0;i<count;i++) { var a=10; var b=5; var min = Math.min(a, b); } }Faster:
function primitiveop() { var count=10000; for(var i=0;i<count;i++) { var a=10; var b=5; var min = a < b ? a : b; } }
Rule: Avoid function calls, try to use primitive operations. The performance difference in significant only in IE 7.
External function vs inline function
Slow:function minfunction(a,b) { var min = a < b ? a : b; return min; } function externalfunction() { var count=10000; for(var i=0;i<count;i++) { var a=10; var b=5; var min=minfunction(a,b); } }Faster:
function inlinefunction() { var count=10000; for(var i=0;i<count;i++) { var a=10; var b=5; var min = a < b ? a : b; } }
Rule: Avoid external function calls, try to use inline functions. The performance difference in significant only in IE 7.
Comments in the script
Slow:function withcomments() { var count=50000; for(var i=0;i<count;i++) { /* dummy comments */ /* dummy comments */ var a=10; /* dummy comments */ /* dummy comments */ var b=5; /* dummy comments */ /* dummy comments */ var min = a < b ? a : b; /* dummy comments */ } }Faster:
function withoutcomments() { var count=50000; for(var i=0;i<count;i++) { var a=10; var b=5; var min = a < b ? a : b; } }
Rule: Avoid comments in performance critical script. The performance difference in significant only in IE 7.
Try catch in performance critical functions
Slow:function withtrycatch() { var count=50000; for(var i=0;i<count;i++) { try { var num=parseInt("10"); } catch(e) { //handle exception } finally { } } }Faster:
function withouttrycatch() { var count=50000; for(var i=0;i<count;i++) { var num=parseInt("10"); } }
Rule: Avoid using try catch inside performance critical function.
No comments:
Post a Comment