Отслеживание узких мест / ошибок при создании тайламапа в игре html5 canvas в firefox - PullRequest
0 голосов
/ 23 февраля 2012

Я использую движок плиток для генерации огромных карт на основе массива.Карта разделена на зоны, рисуются только плитки в зонах вокруг «вида», что дает отличную производительность на гигантских картах и ​​плавное движение.

Однако я установил предел только в Firefox, который я не могу понятьout.

Сначала я подумал, что это просто потому, что я использую гигантские массивы, Firefox может обрабатывать квадратные плитки размером 100x100 64px без ошибок, но все, что выше, выдает ошибку «stop script» и блокирует FF.

В то же время IE, Chrome, Safari и даже мой 2,5-летний телефон HTC Android могут генерировать карты размером 500x300+ (хотя телефон работает только со скоростью 4 кадра в секунду, но, по крайней мере, делает это при инициализации +рисует карту, в отличие от Firefox на моем настольном ПК !!) !!!!!!А это 150 000 плиток !!!!!!!!!!!!!!!По сравнению с Firefox, который задыхается на 10 000 плиток ... как мой 2.5-летний телефон может генерировать карты в 15 раз больше, чем Firefox, работающий на моем рабочем столе?

В мониторе ресурсов мой процессор и ОЗУ макс сразу в FFзатем выдайте ошибку «закрыть документ, чтобы предотвратить потерю данных» ... но мой телефон может обрабатывать карты намного большего размера, чем мой рабочий стол, что заставляет меня поверить, что есть ошибка в том, как FF обрабатывает циклы по сравнению с IE, Chrome, Safari, Opera и моимтелефон, который обрабатывает гораздо большие петли ???

Вот версия, которая работает во всех браузерах, включая FF http://simplehotkey.com/TileEngine/tiles/main.html с картой плиток 100x100

Вот версия с картой плиток 500x100(50000 плиток), который душит FF, но работает во всех других браузерах и, по крайней мере, загружается на моем телефоне: http://simplehotkey.com/Tiles/main.html

У любого есть объяснение, почему старый телефон сгенерирует карту, в 15 раз большую, чем может обрабатывать FFмой рабочий стол ????????

1 Ответ

0 голосов
/ 11 марта 2012

Все ли 150 000 плиток показываются одновременно?Или они просто загружены, но не используются до тех пор, пока не понадобятся?

64px квадратно-декодированные изображения используют 16 КБ ОЗУ каждоеТаким образом, 10 000 из них будут использовать 160 МБ оперативной памяти.150 000 плиток будут использовать 2 + ГБ оперативной памяти.И что я вижу здесь, так это то, что Firefox использует много оперативной памяти, чтобы он начал обмениваться ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...