Package-Internal vs. Package-External Value

From ActionScript Performance Wiki

Jump to: navigation, search

Contents

Purpose

See if there is a benefit in keeping a value object within the same package.

Code

package  
{
	import test.test.test.ExternalValueObject;
 
	import flash.display.Sprite;
 
	public class Test extends Sprite 
	{
		private const TEXT:String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
		private const NUMBER:Number = 1234567890;
 
		public function Test()
		{
			trace(new PerformanceComparison(5000000, test1, test2).start());
		}
 
		private function test1():void 
		{
			test1helper(new InternalValueObject);
		}
 
		private function test2():void 
		{
			test2helper(new ExternalValueObject);
		}
 
		private function test1helper(obj:InternalValueObject):void 
		{
			obj.text = TEXT;
			obj.number = NUMBER;  
		}
 
		private function test2helper(obj:ExternalValueObject):void 
		{
			obj.text = TEXT;
			obj.number = NUMBER; 
		}
	}
}
 
internal class InternalValueObject 
{
	public var text:String;
	public var number:Number;
}
package test.test.test {
	public class ExternalValueObject 
	{
		public var text:String;
		public var number:Number;
	}
}

Results

Compiler version: 3.3.0.485, Player version: MAC 10.0.2.54, Operating System: Mac OS 10.5.8

Test 1
8774 ms, 02% slower
Test 2
8565 ms

Conclusion

Accessing an internal value object is slightly, yet consistently slower.