Escolar Documentos
Profissional Documentos
Cultura Documentos
• 使用明確型別宣告可以增加效率並減少記憶體使用 (明確型別宣告是最佳化效率的
基礎)
class Circle
{
var radius : int; // STRONG (Best)
var color; // WEAK
}
• Strong Reference
◦ 效率較高的存取
◦ 使用 . (dot operator) 存取成員
◦ 明確宣告型別
• Weak Reference
◦ 使用 hash lookup
◦ 沒有型別宣告
• int: 32 位元有號數
• uint: 32 位元無號數
• Number: 64 位元 IEEE 754 倍精度浮點數
ActionScript 3.0 and AVM2: Performance Tuning
• 避免隱性轉型
• 注意數學運算可能造成隱性轉型的情況
• 有時候使用 Number 效率反而比較好
• 容易除錯
• 產生編譯期錯誤
ActionScript 3.0 and AVM2: Performance Tuning
var a : Array = [ 1, 2, 3, 4, 5 ];
a[ 1000 ] = 2010;
a[ 1001 ] = 2011;
a[ 2 ]; // FAST PATH
a[ 1000 ]; // SLOW PATH
var i : int = 1;
var i : int;
• VM 有時候無法幫你的程式最佳化,需要手動最佳化
Method Closures
class Form
{
function setupEvents()
{
var f = function( event : Event ) // activation object
{
trace( "my handler" );
}
grid.addEventListener( "click", f);
}
}
class Form
{
function setupEvents()
{
grid.addEventListener( "click", f );
}
function f( event : Event )
{
trace( "my handler" );
}
}
ActionScript 3.0 and AVM2: Performance Tuning
Compound Strings
Φ Hello,
prefix
s += "world, ";
var s : String
Φ Hello, world,
prefix prefix
s += "from AS3!";
var s : String