我编写了一个基本的 Java 小程序,可用作游戏爱好者网站的地图查看器(如 Google 地图)。
在其中,我在具有 16 个不同楼层的 2D 地图上实现了 A* 寻路算法,在某些点上“连接”。楼层存储在 PNG 图像中,这些图像在需要时下载并转换为字节数组。从像素 RGB 值中检索节点成本并放入字节数组中。
该地图包含大约 200 万块瓷砖,分布在 16 个楼层。图像大小为 1475 x 2000(PNG 图像为 15-140 KB),因此某些楼层包含很多空瓷砖。
字节数组在内存中会很大,导致大多数 JVM 配置出现“java.lang.OutOfMemoryError: Java heap space”错误。
所以我的问题是
- 有没有办法减少这些字节数组的大小并且仍然有正确的探路者功能?
- 我是否应该采取不同的方法来找到最佳路径,而不是在内存中保存图块?
我认为在 Web 服务器上查找路径会占用过多的 CPU。
最好的问候,