Просмотр полной версии : Версии флеш плеера и их глюки.
У меня возникла очень не приятная ситуация.
Делаю проект, в нем присутствуют большие массивы (10к--100к чисел), и над массивами производяться различные манипуляции (построение графика по расчетам и данным из этих масивов).
Так вот все работало все хорошо, но это хорошо закончилось тем, что у заказчика не работает проект в определенной ситуации ( насколько я понимаю, получаеться вечный цикл -> выскакивает окошко "скрипт - тормоз остановить его?"). После выяснений и тестов на разных плеерах получили:
7.х.х.х (не посмотрел че за хх стоит %( ) работает отлично никаких глюков
8.0.22.0 - работает отлично
8.0.24.0 - не работает !!!!
8.5.... че дальше незнаю, работает отлично
9.х.х.х работает отлично.
Никто не подскажет че может быть? Самое блин обидное что у заказчика попалась именно такая версия плеера!, пример проекта не могу выложить %((
Можем обсудить на этом примере - аналогичная ситуация.
http://mainmaps.com/usa_zip/
Кроме того пример не из коммерческого проекта, а из годичной давности демонстрационного.
Так вот. Если там в поле "St" ввести TX (техас ) и нажать Select, то аналогично твоему, а если VT ( или другой маленький штат ) - нормально.
Я потом тестил из-за чего это происходит.
ЗЫ. Счетчик там не для того чтобы считать, а смотреть точки перехода.
Что есть в этом ролике. Флеш-мувие получает через ПХП из МуСКуЛ базы географические координаты почтовых отделений США ( примерно 100000 ). Далее происходит пересчет этих координат в плоские и вывод на карту.
По моему "идейно" похоже на построение графика по точкам.
Если отключить функцию вывода на карту по плоским координатам и оставить только пересчет, то все работает без проблем.
Или если прорисовывать точки на плоскости порциями, используя "СетИнтервал", то тоже работает нормально.
Еще я заменял цикл "фор" для вывода точек на карту -"онЕнтерФрейм"-ом. Тоже работало без проблем, но ужастно долго.
У меня сложилось впечатление, что плейер получает "большое кол-во заданий на прорисовку и не успевает с ними справляться".
У меня работает нормально,
тут можнет еще зависить и от производительности машины. В твоем примере у меня(Атлон 2.500+ ) скрипт задумываеться секунд на 5-10 но потом нормально работает, у меня повис только когда я нажал на select, без предварительно clear %)).
Я тоже сначало погрешил на машину заказчика думал может любит антиквариат, но тама все серьезнее оказалось - р4 3 Гц,
а потом в 7м тестили на атлоне 1.5 работало все ок.
К тому же в моем случае это немного нето, получаеться что в процессе расчета каждый следующий массив получаеться из предыдущего и меньше предыдушего - т.е. в конце концов получаеться массив из 40-50 элементов - вот как раз на нем и происходит глюк %(((, И к томуже он происходит именно на конкретной версии плеера!
Мне же кажется, что дело не в мощах проца. А в видеокарте - она не справляется с прорисовкой. Точнее в соотношении мощьности проца и возможностей видеокарты
Можно еще здесь посмотреть аналогичную ( для меня ) ситуацию
http://mainmaps.com/subway/ .
Если кликнуть на очень удаленных точках, то такая-же проблема.
Видео карта тут совсем не причем!, флеш имеет к ней такое же отношение как я к сатурну.
все зависит от алгоритма расчета, вся нагрузка идет как раз на проц!!! та видео карта то одного места, в качестве проверки - снеси дрова на свою видуху и посомтри - скорость не измениться!
for (i=0;i<100000000;i++){
trace(i);
}
У меня проблема на 141862.
тут еще одна проблема - трейс не очень хорошо справляеться с большим объемом данных(вернее строк)
помериемся пиписьками - у меня 371238 %)).
Просто мои траблы немного другого характера, и не зависят от производительности компа, в тестовом варианте массив всего 20000, максимальные тормоза 1-2 секунды. насколько я подозреваю я где-то может промазываю с индексом в массиве и куда-то чего то не туда посылаю, Я бы не удивился будь это Си или Делфя %)), но флеш типа умно сам распределяет память, видно 8.0.24.0 сильно умно ее распределяет, себе на задницу - был еще глюк замечен: после остановки скрипта - правая мыши на флешки - сетиннгс, и там такое твориться!!! просто цирк и новый год, все блымает, нормального окошка нету все элементы меняються местами быстро быстро при это исчезают и появляються %((
помериемся пиписьками - у меня 371238 %))
У меня Целерон-2000. Так что так и должно быть.
:)
А если откровенно, то я бы хотел во всем этом тоже реально разобраться.
Я вас сделал :) У меня 513268:yahoo:
Ну ребятки хватить пиписьками мериться..%))
Подскажите с чем могут быть связаны глюки?
этот глюк я пока описать немогу, зато знаю другие:
1. 2 вложеных цикла в обоих использвать одну и туже цикловою переменную например i + гоняние этой i в качестве индекса у childNodes - скрипт говорит что он тормоз, после подтверждения что он тормоз Флеш ИДЕ умерает %(.
2. Загрузка данных во врем тестирования с сервера в самой Флеш ИДЕ - послали запрос, не дождавшись ответа закрываем сфку, флеш через несколько секунд вылетает.
Страсти рассказаны о Flash MX 2004.
зы. после небольшой оптимизации моя пиписька немного подросла %))
3 300 000
for (i=0;i<100000000; i++){
if (i%100000==0) trace(i);
};
делай просчёт порциями, разбивай накуски и запускай через интервалы
на выполнение отводится Х секунд установленные компилятором, ваши числа зависят от скорости ваших процов. глупая тема =\
по сабжу:
советую структуризировать данные если это возможно и привязать к XML внешним. желательно нескольким если данных действительно море.
если проблема с этим временем Х - тогда можешь создать некую функцию анализатора для оценки средних возможностей проца и пихать небольшие цыклы по кадрам - я так поступал когда у меня возникали проблемы с обработкой массивов. если в лом писать функции и прочую дребедень, ставь 120 кадров в секунду и скажем 1000 цыклов за кадр.
блин ребятки да я шарю, что и как и сколько данных флеш хавает за раз. и сколько нужно времени чтобы это посчитать (расчет кстате ведется до того момента как происходит глюк, т.е. мы рассчитали все нужные массивы, юзверь начинает веселиться, и при нажатити на определденную опцыю наступает плохо). И разговор идет не отом как это оптимизировать, а о том "где может быть собака зарыта"! где могут быть глюки, допустим в Си я сначала проверял указатели, индексы массивов и т.д., ну тут же нету указателей, и нету индексов в массиве
-1 в качестве индекса влепил и нормально %)
И к томуже оно все работает замечательно только в версии флеш плеера 8.0.24.0 глючит!
извените что я такой нервный, нету счастья с этим проектом %(( не парился прарился и сел на ровном (хотя может и не очень %) ) месте
время выполнения цыкла превосходит условленное компилятором - do i make myself clear?
как избежать? - поделить цыкл на кучку мелких и выполнять их по одной кучке за кард чтобы время выполнения каждого удовлетворяло установленному лимиту. If you can't comprehend this - then either im so tired i can't even explaint such a simple thing or thinking isn't your strongest point.
regards yhbt.
И к томуже оно все работает замечательно только в версии флеш плеера 8.0.24.0 глючит!
метод научного тыка: разбиваешь все на дипазоны и еще место с которого происходит завал.
эх как мечтал об ответе "блин, а ты че разве незнаешь, что плеер 8.0.24.0 глючит при работе с ... поэтому лучше так не делать " %))
ещё можно этот интервал смерти удлинить с помощью HEX редактора
и клиенту и его клиентам поставлять специальеые НЕХ нутые флеш плееры %), а толку если там получился вечный цыкл? %)
Блин отстрелите меня,
Не могу добиться эффекта как у меня дома и у заказчика, 4 челам из офиса поставил плеер 8.0.24.0 у всех работает! и на 15 машинах протестил (плеера неизвестно какие скорей всего 8....) работает.
Попробывал сочетание винды + ИЕ + плеер как у заказчика - работает ! %(((.
а у него не работает, и дома не работает, хотя различные конфигурации всего %(.
и клиенту и его клиентам поставлять специальеые НЕХ нутые флеш плееры %), а толку если там получился вечный цыкл? %)
тебе про swf говорят
никогда не подозревал что свф может хранить инфу о "критическом" времени выполнения код
Надо читать про спецификацию swf
ScriptLimits
The ScriptLimits tag includes two fields which can be used to override the default settings for
maximum recursion depth and ActionScript time-out: MaxRecursionDepth and
ScriptTimeoutSeconds.
The MaxRecursionDepth field sets the ActionScript maximum recursion limit. The default
setting is 256 at the time of this writing. This default can be changed to any value greater than 0.
The ScriptTimeoutSeconds field sets the maximum number of seconds the player should process
ActionScript before displaying a dialog box asking if the script should be stopped.
The default value for ScriptTimeoutSeconds varies by platform and is between 15 to 20 seconds.
This default value is subject to change.
The minimum file format version is SWF 7.
спасибо за полезную ифну, буду знать!
правда виснет флешка из-за другого -- флеш плееры скорей всего по разному трактуют NaN и infinity в математических операциях, при сравнении чисел с этими неподобствами - и из-за этого получаеться вечный цикл((, но это мои догадки... т.к. я не могу повторить эту ситуацию сейчас на работе %(( буду дома колупать на варианты трактовки..., если че найду - расскажу
это не имеет значения... я ответил на твой вопрос в 14-м посте, yet у нас тут их 29 уже, мой тебе душевный совет - экономь чужое время а не свое, если тебе дают зацепку - ищи по ней, а я тебе дал больше чем зацепку, я тебе раскрыл всю итересующую тебя часть механики плеера. Как ты умудрился дойти от массивов до бесконечности мне не разуметь никогда, если тебя волнует тригонометрия то тебе на форум математиков, по сути бесконечность или нан для программера безразличны до тех пор пока он не ударяется в математический маразм и надимает бить по голове клавой и пытаться откусить кусок мыши. Массив бесконечного размера не может быть обработан, массив бесконечного размера не может быть создан даже ибо даже индекс ждет оперативку а компьютеров с бесконечной памятью мне пока видеть не доводилось, про "НаН": АС1, АС2 да и АС3 не поддерживают НИЧЕГО другово кроме целых положительных численных значений в качестве индекса. Короче - stay focused. Если ты незнаешь в чем твоя проблема - откуда мне знать?
злят меня такие топики и авторы, оффтоп в своем же топике. Даже раздел не для вопросов по флешу.
2 Usnul давай подеремся %)...
в 14 посте ты мне предложил вариант как управлять большим количеством данных. Предложеные варианты хороши не спорю, я так и делаю когда нужно.
Как ты умудрился дойти от массивов до бесконечности мне не разуметь никогда, если тебя волнует тригонометрия то тебе на форум математиков,
Массивы это как предположение -> массивы кушают память, а когда кушаеться меого памяти то можно немного не того откушать
по сути бесконечность или нан для программера безразличны до тех пор пока он не ударяется в математический маразм и надимает бить по голове клавой и пытаться откусить кусок мыши. Массив бесконечного размера не может быть обработан, массив бесконечного размера не может быть создан даже ибо даже индекс ждет оперативку а компьютеров с бесконечной памятью мне пока видеть не доводилось
Тебе про бесконечные массивы никто не говорил, если ты внимательно читал топик - говорили про бесконечный цикл (цикл не всегда бывает фором и не всегда служит для перебора значений массива, если ты не в курсе).
про "НаН": АС1, АС2 да и АС3 не поддерживают НИЧЕГО другово кроме целых положительных численных значений в качестве индекса. Короче - stay focused. Если ты незнаешь в чем твоя проблема - откуда мне знать?
ну как сказать безразличны или нет NaN и Infinity Это смотря как они обрабатываються плеером как пример:
for (i=Number.NaN; i<100; i++ ){
trace(i);
}
for (i=Number.POSITIVE_INFINITY; i<100; i++ ){
trace(i);
}
for (i=Number.NEGATIVE_INFINITY; i<100; i++ ){
trace(i);
}
в первых 2 случаях не вывелось ничего, третий убивает плеер.
for (i=0; i<Number.NaN; i++ ){
trace(i);
}
Не выполняеться ни одной итерации
for (i=0; i<=Number.NaN; i++ ){
trace(i);
}
Выполняеться бесконечное число итераций.
Так вот вполне вероятно что в моих расчетах проскакивает, или нан, или инфинити в качестве старта или конца цыкловой переменной, но они проскакивают лишь в конкретных сочетаниях версий плеера + браузера + винды + неизвестно что, я еще не нашел чего.
Т.е. интересно в каких сочетаниях это происходит... допустим недавно обсуждалась тема (http://www.flasher.ru/forum/showthread.php?t=79744&page=2) где в различных версиях плеера по различному трактуються НаН.
Ну и вот может в данной версии плеера или винды плеер как-то иначе может получать/трактовать или строки, или числа, или Дату (я использую в рассчетах дату), или еще какую-то хрень, и вместо ожидаемого числа получаеться НаН или еще какая-то гадость -> плеер уходит в аут!
Надеюсь теперь тебе понятна связь между массивами и бесконечными циклами?
У меня возникла очень не приятная ситуация.
Делаю проект, в нем присутствуют большие массивы (10к--100к чисел), и над массивами производяться различные манипуляции (построение графика по расчетам и данным из этих масивов).
Так вот все работало все хорошо, но это хорошо закончилось тем, что у заказчика не работает проект в определенной ситуации ( насколько я понимаю, получаеться вечный цикл -> выскакивает окошко "скрипт - тормоз остановить его?"). После выяснений и тестов на разных плеерах получили:
7.х.х.х (не посмотрел че за хх стоит %( ) работает отлично никаких глюков
8.0.22.0 - работает отлично
8.0.24.0 - не работает !!!!
8.5.... че дальше незнаю, работает отлично
9.х.х.х работает отлично.
Никто не подскажет че может быть? Самое блин обидное что у заказчика попалась именно такая версия плеера!, пример проекта не могу выложить %((
лень спорить, прочитай свой пост внимательно.
Гы Гы случилось счастье!
все засада и правда оказалась в дате, вернее в том что я тормознул и не подумал про часовые пояса!, относильно моего часового пояса дата с которой сравниваю равна нулю, вернее "месяц число 00.00.00", а относильно пояса заказчика она не равна 00.00.00, а равна "месяц число <его часовой пояс+мой часовой пояс>.00.00", отсюдого и вечный цикл.
А когда в офисе тестил у всех один часовой пояс и у занкомых тоже он же, а на домашнем компе был на радость детям выставлен отфонарный %))
нужно от радости напиться !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!,
блин так протупить %((.
Обвинения по поводу плеера снимаються, Макромедия(Адобе) , Руль !!!. надо ж было такое совпадение по плеерам у меня и заказчика, и ведь ни у кого не стоял такой же в начале %((
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.