2013-11-26 2 views
0

메모리 사용과 관련하여 변수가 어떻게 작동하는지 궁금합니다.단일 인스턴스에 대한 여러 참조 - AS3

게임을 만들고 있는데 EnemyManager라는 싱글 톤이 있다고 가정 해 보겠습니다.이 적들은 EnemyManager와 '접촉'해야합니다. 그러므로 나는 각각의 적 사례에서 변수를 만드는 것을 선택한다. 다음

var enemyManagerRef:EnemyManager = EnemyManager.getInstance(); 

질문은, 모든 변수는 많은 양의 메모리를 차지합니다, 나는 단지 1 참조를 가질 수 있도록 내가 대신 정적 변수를 사용하는 것이 좋습니다, 또는 매우 작은 메모리를 사용합니까?

은 사전에 감사 EnemyManager 이미 메모리에 할당되어야하고 모든 참조가 지적됩니다

답변

0

피터. 거대한 비트 맵을 생성 한 후 1000 개의 참조를 만들 때와 같습니다. 복사본을 만들지 않으므로 메모리 사용량이 적어야합니다.

+0

하지만 언제 대신 하나의 정적 변수를 만드는 것이 합리적일까요? 일부 수학이이 문제와 관련이 있다고 생각합니다. 각 참조가 필요로하는 메모리의 양과 단일 정적 변수의 처리량에 달려 있습니다. – user3037458

+0

글쎄, 그건 당신의 구현에 달려 있지만 근본적으로 나는 너무 많은 차이점이 없을 것이라고 추측한다. 가장 큰 것은 아마도 getInstance()를 호출하는 오버 헤드 일 것입니다 (큰 문제는 아닙니다). – Fygo

+0

@ user3037458 정적 로컬 변수는 클래스 로컬 변수보다 액세스 속도가 느린 반면 클래스 로컬 변수는 더 많은 메모리를 소비합니다 (인스턴스 당 몇 바이트 씩). 그것은 메모리 대 성능 문제이며 적군이 프레임 당 여러 번 적군 관리자를 참조해야하는 경우가 아니라면 다소 작습니다. – Vesper

관련 문제