【FinalClassTest】finalキーワードによる高速化の検証 (変数アクセス版)
forked from 【FinalClassTest】finalキーワードによる高速化の検証 (diff: 24)
変数アクセスについても検証を行ってみた。 これもfinalとすることで高速化を行うことはできなかった。 ラルフがflashcampで言っていたことはどういう事だったんだろうか。
ActionScript3 source code
/**
* Copyright wetcradle ( http://wonderfl.net/user/wetcradle )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/46Ov
*/
// forked from wetcradle's 【FinalClassTest】finalキーワードによる高速化の検証
/**
変数アクセスについても検証を行ってみた。
これもfinalとすることで高速化を行うことはできなかった。
ラルフがflashcampで言っていたことはどういう事だったんだろうか。
*/
package {
import flash.display.Sprite;
import flash.text.TextField;
public class FinalClassTest extends Sprite {
public function FinalClassTest():void {
var textField:TextField = new TextField();
textField.width = textField.height = 400;
addChild(textField);
textField.text = "not final, final\n";
var notFinalSum:Number = 0;
var finalSum:Number = 0;
var notFinalClass:Object = new NotFinalClass();
var finalClass:Object = new FinalClass();
for (var i:int=0; i<10; i++) {
var notFinalTime:Number = doTest(notFinalClass);
var finalTime:Number = doTest(finalClass);
notFinalSum += notFinalTime;
finalSum += finalTime;
textField.appendText(String(notFinalTime)+", "+String(finalTime)+"\n");
}
textField.appendText(String(notFinalSum)+", "+String(finalSum)+"\n");
}
private function doTest(object:Object):Number {
var startDate:Date = new Date();
for (object.value=0; object.value<1e+6; object.value++);
return new Date().time - startDate.time;
}
}
}
class NotFinalClass {
public var value:int;
}
final class FinalClass {
public var value:int;
}
