About

<#TEMPLATE_INCLUDE_NINEPAGE_ABOUTME#>
  • Aug

    14

    [AS3] try…catch VS if…else

    • 0 Comments
    • Flash Platform

    从以下对比中可以看出 try…catch 的性能远低于 if…else,前者因需在内存中建立处理栈、匹配块、冒泡等原因性能明显比后者低。

    一、try…catch 

    var arr:Vector.<int>  = new Vector.<int>();
    var time:int = getTimer();
    for (var i:int = 0; i < 100000; i++) {
     try {
      arr[i];
     } catch (err:Error) {
      arr.push(i);
     }
    }
    trace(getTimer() - time);//864ms

     二、if…else

    var arr:Array = new Array();
    var time:int = getTimer();
    for (var i:int = 0; i < 100000; i++) {
     if (arr[i]) {
     } else {
      arr.push(i);
     }
    }
    trace(getTimer() - time);//25ms

    More...