Показать сообщение отдельно
Старый 12.09.2012, 22:28
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 3  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Собственно, тесты:

1. Тест на сравнение '==', результат:
Код:
Test started, 100000000 iterattions!
if:	1453 milisecconds
switch:	1831 milisecconds
version: WIN 10,1,52,14
2. Тест на условие '<', результат:
Код:
Test started, 100000000 iterattions!
if:	1272 milliseconds
switch:	6568 milliseconds
version: WIN 10,1,52,14
Код тестов одинаковый, меняются лишь условия:
Код AS3:
import flash.events.TimerEvent;
import flash.utils.Timer;
import flash.system.Capabilities;
 
var test:int = 100000000;
var timer:Timer = new Timer(1000, 1);
timer.addEventListener(TimerEvent.TIMER_COMPLETE, startTest);
timer.start();
trace('Test started, '+test+' iterattions!');
 
function startTest(e:TimerEvent):void{
	var b:int = 0;
	var timeStart:Number = getTimer();
 
	for(var i:int = 0; i<test; i++){
 
		if(i<0){
		b++;
		}else if(i<0){
		b++;
		}else if(i<0){
		b++;
		}
	}
 
	trace('if:	'+(getTimer()-timeStart)+' milliseconds');
	b = 0;
	timeStart = getTimer();
 
	for(var j:int = 0; j<test; j++){
		switch(j){
			case j<0:
			b++;
			break;
 
			case j<0:
			b++;
			break;
 
			case j<0:
			b++;
			break;
		}
	}
 
	trace('switch:'+(getTimer()-timeStart)+' milliseconds');
	trace('version: '+Capabilities.version);
}
Добавлено через 13 минут
Switch подходит для сравнения конкретных результатов, вкладывая в него '<' мы фактически создаем ещё одно под условие, отсюда такой плохой результат.

Писать его не сложно и он очень удобен для перебора заранее известных результатов. Получаются ясные и красивые конструкций.

Добавлено через 25 минут
Особенно стоит отметить возможность указания последовательных меток в switch:
Код AS3:
case 1:
case 2:
case 3:
// code
break;
__________________
Дети не должны знать о своих родителях