我正在开发一个简单的GameOfLife程序,并尝试使用它进行一些优化。我的问题是,当我为游戏创建单元格(具有6个基元的小类)时,可能需要很长时间(特别是当我创建10000 * 10000时)。
所以我的问题是,如果有人知道如何更快地做到这一点?
cells = new Cell[this.collums][this.rows];
for (int x = 0; x < cells.length; x++) {
for (int y = 0; y < cells[0].length; y++) {
cells[x][y] = new Cell(x * this.cellSize, y * this.cellSize, this.cellSize);
}
}
答案 0 :(得分:1)
如果您要使用大型(或无限制)游戏领域,您可能不应该首先将单个单元格建模为对象。
“生命游戏”中的字段通常不会填充太多,因此最好将其建模为稀疏矩阵。有很多技巧可以优化游戏生命实现 - 无论是数据存储还是性能(在下一步中将字段复制)。请查看此问题,例如:
让Cell
个实例代表单个单元格似乎是一个好主意,它可能适用于相对较小的字段。但如果你真的瞄准更大的领域,这将无法正常工作。在这种情况下,您必须交易OO以提高效率。
答案 1 :(得分:0)
创建大量像这样的对象会很慢,有两种可能的解决方法:
第一个更快,但第二个更像面向对象。