Просмотр полной версии : цикл - тормозит?
При сравнении быстродействия следующих кодов:
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 (); ???
Представь КАКОГО размера у тебя будет файл? Сколько он грузиться будет... Вот и выбирай что тебе милее. =))
я занимаюсь презентациями, и мне гораздо милее скорость)))
Быстрее всего - четвёрошный синтаксис.
tellTarget, eval, setProperty etc...
Наверное, slash notation тоже.
Подробности тут (http://flasm.sourceforge.net/).
Если напишеш 888 раз:
replaceImage ();
То файл разбухнет и ты потеряешь в скорости загрузки. Тем более, сомневаюся, что такие небольшие различия в скорости между циклом и написанием подряд столь критичны.
cyraxchel
26.07.2003, 09:01
2Gar:
А представляешь какое это шоу - посмотреть на набивающего 888 раз одно и тоже dee2? =))
Плачу 3$, чтобы на это взглянуть. и еще 2$ за то, чтобы увидеть его в момент запуска и выполнения презентации. =))
2dee2: Ты действительно потеряешь может от силы 2 сек. Разве оно того стоит? Особенно когда тебе потребуется изменить число 888, например на 777.
2cyraxchel:
Поддерживаю ставку - но только если он все это вручную набирать будет - а не через copy-paste.
cyraxchel
26.07.2003, 16:21
2 Gar:
:) :) И длиться будет это годами.... :)
2cyraxchel:
Вот в таких случаях скорость становится критичной!
2dee2:
Не огорчайся, мы просто прикалываемся...
:rolleyes: На ассемблере есть подобное. Сравнение, конечно, не уместно, но логика, похоже, одна и та же — выполнение команд "подряд" без перерывов на обработку цикла идет быстрее.
Меня, правда, смущает видимое различие в скорости при таком небольшом количестве итераций — видимо, уже какие-то флешевые заморочки... "Долго" работает сравнение? У ассемблера там понятные причины были... Хз.
2 mort:
replaceImage () на самом деле достаточно ресурсоёмкая процедура и двигает картинки. Поэтому любой тормоз сказывается на плавности движения даже при небольшом количестве итераций
2 Gar: странно, что я выгляжу огорченным... Тебе не показалось, случаем?)))
888 сторчек кода легче всего набить в Excel)))
2 cyraxchel: готовь $5 :D
cyraxchel
28.07.2003, 10:40
2dee2:
5$ будет, когда увижу. :)
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
2 YuriiZelenev:
thanx for great advice)))
cyraxchel
28.07.2003, 11:29
2dee2:
:)))
Лады, за такие неручные труды пришлю тебе завтра 5$ (сегодня не взял с собой).
:D :D :D :D
да не торопись...
сумму побольше накопим - а потом уж за пивом пересечёмся ;)
cyraxchel
28.07.2003, 15:06
Да не, реально, ты только мыло оставь.
cyraxchel
28.07.2003, 17:08
Не, там нормально письмо не отправить. Скинь тады в привате, чтоль.
cyraxchel
29.07.2003, 10:00
Вот, честно отдаю 5$.
Только вот жаль, что я так и не увидел, как ОН (т.е. Dee2) набивает 888 раз replaceImage(). Результаты видел. Поэтому и баксы виртуальные. =)
Сколько раз говорено - выкладывай сорс :D
cyraxchel
29.07.2003, 10:25
А на кой тебе сорс??
преумножить честно заработанные деньги)))
cyraxchel
29.07.2003, 10:40
:D :D
Вот поэтому не дам. =))
Хот если сильно нужно - вышлю на мыло. =) :D
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.