2012-10-26 5 views
2

저는 KineticJS를 사용하여 iOS 앱 (UIWebView)을 제작했습니다. 메모리 사용률을 이해하기 위해 간단한 예제 애플리케이션을 만들었습니다. 저는 하나의 무대를 만들고 그것에 100 개의 레이어를 추가하고 각 레이어에 하나의 라인을 추가했습니다. 스테이지와 레이어에 할당 된 메모리 양은 레이어 당 약 6 Mb 또는 600 Mb였습니다. 그런 다음 setInterval 함수에서 각 레이어를 제거한 다음 stage.reset()을 호출하여 코드를 확인했습니다. 프로파일 링에서 메모리 사용량은 감소하지 않았습니다.KineticJS Reclaiming Memory

코드를 검토하여 내가 레이어에 대한 참조를 유지하지 않았는지 확인했습니다. 한 테스트에서 나는 또한 단계를 역 참조하지만 메모리 할당 값은 변하지 않습니다. 이 버그가 될 수 또는 KineticJS 사용하여 메모리를 회수 할 다른 수단이 있습니까?

+0

비슷한 문제가 있습니다. @ 라이언, 문제 해결 방법을 찾았습니까? – Jaffer

+0

@Jaffer 이것은 내 질문이 아니었다. 나는 그것에 태그를 추가하기 만했다. 행운을 빌어 요! –

+0

아, 죄송합니다 @ 라이언. Bruce, Fabric.js로 옮겨서 내 페이지의 메모리 사용 공간이 크게 향상되었습니다. – Jaffer

답변

0

이것은 많은 브라우저에서 '가비지 수집'문제입니다. 기본적으로 역 참조는 메모리를 확보하지 않습니다. 메모리를 비우는시기를 인식하려면 브라우저를 사용해야합니다. 일부 Android 브라우저에서도 동일한 문제가 발생했습니다. 기본적으로, 나는 최신 Firefox 브라우저를 설치했는데 훨씬 더 잘 작동했다. 죄송합니다. 더 도움이되지 못했습니다.