2012-02-23 3 views
0

타일 엔진을 사용하여 배열을 기반으로 거대한지도를 생성하고 있습니다. 지도는 여러 구역으로 나누어 져 있는데, "보기"주위의 영역에있는 타일 만 그려지며 거대한지도와 부드러운 움직임에 뛰어난 성능을 제공합니다.firefox에서 html5 캔버스 게임의 병목 현상/버그 생성 타일 맵

그러나 나는 알아낼 수없는 Firefox에서만 한계를 맞았습니다.

처음에는 거대한 배열을 사용하고 있기 때문에 파이어 폭스가 100x100 크기의 64px 정사각형 타일을 오류없이 처리 할 수 ​​있다고 생각했지만 위의 내용은 "정지 스크립트"오류를 발생시키고 FF를 잠급니다.

IE, Chrome, Safari, 심지어 내 2.5 년 된 HTC 안드로이드 전화도지도 500x300 + 타일을 생성 할 수 있습니다 (전화는 4fps에서만 실행되지만 최소한 초기화를 통해지도를 그립니다.) , 파이어 폭스와 달리 내 데스크톱 PC !!) !!!!!! 150,000 타일입니다 !!!!!!!!!!!!!!! 10,000 타일에서 질식하는 파이어 폭스와 비교하면 .... 내 2.5 년 된 전화가 내 데스크탑에서 실행되는 파이어 폭스보다 15 배 이상의 맵을 어떻게 생성 할 수 있습니까 ?????

리소스 모니터에서 내 CPU와 RAM의 크기가 FF로 바뀌면 "데이터가 손실되지 않도록 문서를 닫습니다."라는 오류가 나타납니다. 그러나 내 전화는 내 바탕 화면보다 훨씬 큰지도를 처리 할 수 ​​있습니다. FF는 루프를 IE, Chrome, Safari, Opera 및 훨씬 더 큰 루프를 처리하는 내 휴대 전화와 비교하여 처리합니까 ??? 여기

는 FF를 질식하지만 다른 모든 브라우저와 최소 부하에서 실행되는 500x100 타일 맵 (50,000 타일)과의 100 x 100 사이즈의 타일 맵 여기

와 FF http://simplehotkey.com/TileEngine/tiles/main.html을 포함한 모든 브라우저에서 버전을 작동하는 버전입니다 내 전화 번호 : http://simplehotkey.com/Tiles/main.html

누구나 왜 구형 전화가 내 데스크톱에서 처리 할 수있는 FF보다 15 배 큰지도를 생성하는지 설명하고 있습니다. ????????

답변

0

15 만 개의 타일이 모두 동시에 표시됩니까? 아니면 방금로드되었지만 필요할 때까지 사용되지 않았습니까?

64px 평방 디코딩 된 이미지는 각각 16KB의 RAM을 사용합니다. 그래서 그들 중 10,000 명이 160MB의 RAM을 사용할 것입니다. 150,000 개의 타일은 2GB 이상의 RAM을 사용합니다. 그리고 내가 여기서 본 것은 Firefox가 많은 RAM을 사용하여 스와핑을 시작하기 때문에 ....

+0

로드 할 150,000 개의 독특한 이미지가 없다고 생각합니다. 즉, Firefox 자체가 모두 만들어집니다. 그리고 이것이 FF 스왑 만하는 이유입니다. –

+0

음, 타일 이미지가 시작 되나요? 어떻게 만들어 지나요? –