My First ActionScript 3 Application » продолжая разговор об Object
Главная > Мысли вслух > продолжая разговор об Object

продолжая разговор об Object

Читая комментарии к предыдущему посту я было усомнился в своей точке зрения. И решил провести тест. В итоге имеем класс Item:


package {
	import flash.display.Bitmap;

	public class Item {
		public var label:String;
		public var data:int;
		public function Item(_label:String, _data:int):void {
			label = _label;
			data = _data;
		}
	}
}

и собственно тест:


package {
	import flash.display.Sprite;
	import flash.utils.Timer;
	import flash.utils.getTimer;

	public class Test extends Sprite {
		private const COUNT : int = 1000000;
		public function Test() {
			var list1 : Array = new Array();
			var list2 : Array = new Array();
			var begin : int;
			var end : int;
			var i : int;

			begin = getTimer();
			for (i = 0;i < COUNT; i++) {
				list1.push({label:"str", data:i});
			}
			end = getTimer();
			trace("time for simple Object: ", end-begin);

			begin = getTimer();
			for ( i = 0;i < COUNT; i++) {
				list2.push(new Item("str", i));
			}
			end = getTimer();
			trace("time for class Item: ", end-begin);
		}
	}
}

В итоге у меня получилось 1730 и 2100 миллисекунд для Объекта и Класса соответственно.

Categories: Мысли вслух Tags:
  1. prof
    6 марта 2009 в 22:25 | #1

    Т.е. результаты говорят о том, что использование Item предпочтительнее?

  2. 6 марта 2009 в 23:50 | #2

    prof :
    Т.е. результаты говорят о том, что использование Item предпочтительнее?

    ммм… разве? может я опечатался?

  3. Mike
    9 марта 2009 в 09:25 | #3

    Странный тест. Мне, допустим, скорость создания таких простых объектов неинтересна, а скорость доступа к полям гораздо интереснее.

  4. XYNTA
    10 марта 2009 в 05:14 | #4

    А теперь поменяй местами циклы. У меня на подобных тестах получается, что первый всегда быстрее срабатывает.

  5. 16 марта 2009 в 09:15 | #5

    XYNTA :
    А теперь поменяй местами циклы. У меня на подобных тестах получается, что первый всегда быстрее срабатывает.

    Поменял. Вот трейс:


    time for class Item: 2489
    time for simple Object: 2104

  1. Пока что нет уведомлений.