PDA

Просмотр полной версии : цикл - тормозит?


dee2
25.07.2003, 11:49
При сравнении быстродействия следующих кодов:

replaceImage ();replaceImage ();
replaceImage ();replaceImage ();
replaceImage ();replaceImage ();
replaceImage ();replaceImage ();

и

for (i=1;i<9;i++) {replaceImage ();}

выяснилось, что второй вариант привнешней своей красоте заметно тормознее

в чем тут дело?
ладно в цикле i=8, а если 888 ?

cyraxchel
25.07.2003, 12:10
а ты представляешь себе 888 раз написать replaceImage (); ???
Представь КАКОГО размера у тебя будет файл? Сколько он грузиться будет... Вот и выбирай что тебе милее. =))

dee2
25.07.2003, 12:19
я занимаюсь презентациями, и мне гораздо милее скорость)))

Useless
25.07.2003, 14:36
Быстрее всего - четвёрошный синтаксис.

tellTarget, eval, setProperty etc...

Наверное, slash notation тоже.

Подробности тут (http://flasm.sourceforge.net/).

Gar
25.07.2003, 22:52
Если напишеш 888 раз:
replaceImage ();
То файл разбухнет и ты потеряешь в скорости загрузки. Тем более, сомневаюся, что такие небольшие различия в скорости между циклом и написанием подряд столь критичны.

cyraxchel
26.07.2003, 09:01
2Gar:
А представляешь какое это шоу - посмотреть на набивающего 888 раз одно и тоже dee2? =))
Плачу 3$, чтобы на это взглянуть. и еще 2$ за то, чтобы увидеть его в момент запуска и выполнения презентации. =))

2dee2: Ты действительно потеряешь может от силы 2 сек. Разве оно того стоит? Особенно когда тебе потребуется изменить число 888, например на 777.

Gar
26.07.2003, 16:11
2cyraxchel:
Поддерживаю ставку - но только если он все это вручную набирать будет - а не через copy-paste.

cyraxchel
26.07.2003, 16:21
2 Gar:
:) :) И длиться будет это годами.... :)

Gar
26.07.2003, 16:27
2cyraxchel:
Вот в таких случаях скорость становится критичной!
2dee2:
Не огорчайся, мы просто прикалываемся...

mort
28.07.2003, 08:57
:rolleyes: На ассемблере есть подобное. Сравнение, конечно, не уместно, но логика, похоже, одна и та же — выполнение команд "подряд" без перерывов на обработку цикла идет быстрее.

Меня, правда, смущает видимое различие в скорости при таком небольшом количестве итераций — видимо, уже какие-то флешевые заморочки... "Долго" работает сравнение? У ассемблера там понятные причины были... Хз.

dee2
28.07.2003, 10:07
2 mort:
replaceImage () на самом деле достаточно ресурсоёмкая процедура и двигает картинки. Поэтому любой тормоз сказывается на плавности движения даже при небольшом количестве итераций

2 Gar: странно, что я выгляжу огорченным... Тебе не показалось, случаем?)))
888 сторчек кода легче всего набить в Excel)))

2 cyraxchel: готовь $5 :D

cyraxchel
28.07.2003, 10:40
2dee2:

5$ будет, когда увижу. :)

dee2
28.07.2003, 11:01
2 cyraxchel:
приятно в понедельник с утра пятерочку на халяву получить...
смотри аттач)))
.xls и .as

кстати: если кто сталкивается с вводом огромного количества данных в as - рекомендую верстать в excel - производительность вырастает на порядок

Итоговая статистика:

1. 888 строк кода заняли 16 kb
2. Если уменьшить название функции до "ri" - размер файла уменьшается до 7 kb
3. cyraxchel должен dee2 $5

YuriiZelenev
28.07.2003, 11:17
koneshno "for" - medlennie...
podumay sam,

v pervom variante - ti prosto zapuskaesh funkciu 8 raz podryad.

vo vtorom variante...
ti vicheslyaesh virajenie dlya inicializacii, proveryaesh uslovie 9 raz, i esli uslovie ravno true - to zapuskaesh funkciu... (itovo ona zapuskaetca 8 raz)... obrashaeshsya k peremennoi i uvelichivaesh eye operatorom incrimenta... (+ eshe uchitivay, chto tvoya peremennaya ne evlyaetca lokalnoi).
tiper sloji vse operacii... i posmotri na raznicu mejdu pervim variantom i vtorim.


ps:ne ponimayu - zachem tebe tut "for" - nujen?
while - vpolne hvatit.while(i!=8){i++,replaceImage();}a eshe, kogda ottestish project - pereimenuy vse (peremennie i tp.) tak - ctob oni bili <5 symbolov..
V takom sluchaye viigrash v skorosti budet na 30-70%!

Regards

dee2
28.07.2003, 11:20
2 YuriiZelenev:
thanx for great advice)))

cyraxchel
28.07.2003, 11:29
2dee2:
:)))

Лады, за такие неручные труды пришлю тебе завтра 5$ (сегодня не взял с собой).

:D :D :D :D

dee2
28.07.2003, 11:40
да не торопись...
сумму побольше накопим - а потом уж за пивом пересечёмся ;)

cyraxchel
28.07.2003, 15:06
Да не, реально, ты только мыло оставь.

dee2
28.07.2003, 15:14
В профайле))

cyraxchel
28.07.2003, 17:08
Не, там нормально письмо не отправить. Скинь тады в привате, чтоль.

cyraxchel
29.07.2003, 10:00
Вот, честно отдаю 5$.
Только вот жаль, что я так и не увидел, как ОН (т.е. Dee2) набивает 888 раз replaceImage(). Результаты видел. Поэтому и баксы виртуальные. =)

dee2
29.07.2003, 10:05
Сколько раз говорено - выкладывай сорс :D

cyraxchel
29.07.2003, 10:25
А на кой тебе сорс??

dee2
29.07.2003, 10:27
преумножить честно заработанные деньги)))

cyraxchel
29.07.2003, 10:40
:D :D
Вот поэтому не дам. =))

Хот если сильно нужно - вышлю на мыло. =) :D