세계가 섹터의 2 차원 그리드로 나뉘어 진 Haxe/OpenFL에서 대규모 멀티 플레이어 온라인 2D 게임을 개발 중이며, 따라서 각 섹터는 하나의 객체로 작동합니다. 서버에서이 부문의 객체 또는 (플레이어가 현재 그들인지 여부에 따라) 메모리에 존재하지 않을 수 있으며, 나는 좌표 자신의 X 및 Y를 통해이 분야의 개체에 액세스해야합니다. 이론적으로는 주어진 시간에 수천 개의 개체가있을 수 있습니다.Haxe - 런타임에 많은 양의 객체를 저장하는 가장 좋은 방법
제 질문은 은 () 가장 빠르고 효율적인 방법으로 이러한 개체를 저장하고 액세스하는 것입니다. x 및 y의 2 차원 배열을 색인으로 사용하려고 시도했지만 구현이 매우 느립니다.
x 및 y에 대한 상한선은 무엇입니까? 배열을 너무 길게 만들지 않으면 (x * (max-y) + y)를 좌표로 사용하여 2 차원 배열을 1 차원 배열로 풀 수 있습니다. – Brian
현재 배열 크기의 한계가 2^32-1이라는 것을 알고있는 한 현재의 섹터 양은 2^36입니다. 그래서 아마 세계의 크기를 제한 할 것입니다. (어쨌든 약간의 과잉 크기가 있습니다.) 그리고 여러분의 솔루션을 시도하십시오. 고맙습니다. – wildfireheart
좋지 않습니다. 나는 어딘가에 2^27 최대 배열 길이 (초기화되지 않은 배열)를 가지고 있었고 응용 프로그램은 성능에 큰 영향을 미친 1.51GB의 RAM을 사용했습니다. 나는 OS X 64 C++ 타겟을위한 Haxe/OpenFL 코드를 컴파일 중이다. – wildfireheart