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