Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.03.2013, 11:27
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 71  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
А вот еще одно неазмысловатое объяснение. Однако, выводы тут прямо противоположные тем, что изложил в первом посте ТС - FOR чаще встречается, чем WHILE.
Миниатюры
Нажмите на изображение для увеличения
Название: 111_cr.jpg
Просмотров: 30
Размер:	92.4 Кб
ID:	29263  

Старый 12.03.2013, 14:31
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 72  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
Ну вы, господа, развели демагогии на 8 страниц. Место теме в флейме =)
__________________
мой пустой блог

Старый 12.03.2013, 14:45
nuToH вне форума Посмотреть профиль Отправить личное сообщение для nuToH Найти все сообщения от nuToH
  № 73  
Ответить с цитированием
nuToH
 
Аватар для nuToH

Регистрация: Mar 2006
Адрес: Ростов-на-Дону
Сообщений: 80
//сарказм.
вот цикл для профи:
один вызов геттера length, супербыстрая математика!
Код AS3:
for (var i:int = arr.length; (i=~-i)^-1; ) {
trace(arr[i]);
}

Старый 12.03.2013, 15:00
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 74  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
(i=~-i)^-1
Кайф. Минут 5 догонял.
__________________
мой пустой блог

Старый 12.03.2013, 15:21
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 75  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Кайф. Минут 5 догонял.
Я видимо туп ) Не догнал

Старый 12.03.2013, 15:31
FlashRus вне форума Посмотреть профиль Отправить личное сообщение для FlashRus Найти все сообщения от FlashRus
  № 76  
Ответить с цитированием
FlashRus
 
Аватар для FlashRus

Регистрация: Nov 2006
Адрес: СПб
Сообщений: 920
Отправить сообщение для FlashRus с помощью ICQ Отправить сообщение для FlashRus с помощью Skype™
Цитата:
Сообщение от nuToH Посмотреть сообщение
//сарказм.
вот цикл для профи:
один вызов геттера length, супербыстрая математика!
Код AS3:
for (var i:int = arr.length; (i=~-i)^-1; ) {
trace(arr[i]);
}
Чёта он ни разу не супербыстрый....

Код AS3:
 
t = getTimer();
for (i = 1000000; (i=~-i)^-1; ) {
}
tf.appendText(getTimer() - t + "\n"); // 8 мс
 
t = getTimer();
for (i = 0; i < 1000000; i++) {
}
tf.appendText(getTimer() - t + "\n"); // 3 мс
Классический вариант более чем в два раза быстрее.


P.S.
Хотя стоп, туплю... Если у нас getter, а не константа то картина несколько другая:

Код AS3:
 
t = getTimer();
for (i = arr.length; (i=~-i)^-1; ) {
}
tf.appendText(getTimer() - t + "\n"); // 7
 
t = getTimer();
for (i = 0; i < arr.length; i++) {
}
tf.appendText(getTimer() - t + "\n"); // 7
Как можно заметить - результаты равны.

НО, если сделать так (ниже), то получается вообще самый-самый быстрый вариант:

Код AS3:
 
t = getTimer();
for (i = arr.length; i >= 0; i--) {
}
tf.appendText(getTimer() - t + "\n"); // 2 мс
__________________
ЛОДКИ


Последний раз редактировалось FlashRus; 12.03.2013 в 15:42.
Старый 12.03.2013, 15:33
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 77  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Побитовые извращения
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 12.03.2013, 16:13
nuToH вне форума Посмотреть профиль Отправить личное сообщение для nuToH Найти все сообщения от nuToH
  № 78  
Ответить с цитированием
nuToH
 
Аватар для nuToH

Регистрация: Mar 2006
Адрес: Ростов-на-Дону
Сообщений: 80
FlashRus, это была шутка. но если бы я делал ставки, то поставил бы на
Код AS3:
var i:int = arr.length;
do {
	--i;
} while ( i > 0 );
но только из спортивного интереса, реальная разница в производительности смысла не имеет.)
в реальной работе для перебора использую
Код AS3:
for each( var i:Тип in arr ) {
}

Старый 12.03.2013, 16:36
FlashRus вне форума Посмотреть профиль Отправить личное сообщение для FlashRus Найти все сообщения от FlashRus
  № 79  
Ответить с цитированием
FlashRus
 
Аватар для FlashRus

Регистрация: Nov 2006
Адрес: СПб
Сообщений: 920
Отправить сообщение для FlashRus с помощью ICQ Отправить сообщение для FlashRus с помощью Skype™
Ну да)
Лучше уже тело цила оптимизировать)
__________________
ЛОДКИ

Старый 12.03.2013, 18:14
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 80  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Цитата:
но если бы я делал ставки, то поставил бы на
и схватили бы исключение при обращении к массиву с 0 длиной.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Создать новую тему Ответ Часовой пояс GMT +4, время: 14:08.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 14:08.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.