【发布时间】:2011-02-20 20:32:20
【问题描述】:
我正在寻找一种快速且内存效率高的方法来实现 Conway 的生命游戏。
限制条件:96x128 板、大约 2kB 可用 RAM 和 52MHz 处理器(请参阅此处的技术规格:http://www.getinpulse.com/features)。
我当前将每个单元格表示为矩阵中的单个位(96*128/8=1,536 字节)的幼稚解决方案可行,但速度太慢。可以使用哪些技巧来提高性能?
存储活细胞的坐标(例如在这个实现中http://dotat.at/prog/life/life.html)会占用太多内存。
【问题讨论】:
-
是否可以从显存中读取数据?如果是这样,您最好直接从显示缓冲区访问状态,而不是将其全部复制到内存中。我注意到手表本身有 8kB 的 RAM - 你有什么理由限制在其中的四分之一吗?
-
似乎最好的解决方案是不要烧掉其余的 RAM 内存,天知道是什么。根据该链接,您有 8kb 的 RAM。尽可能多地释放其他 6kb ......你需要一个相当大的应用程序才能使用这么多,即使你有一个很大的脂肪堆栈,比如说 1kb。为初学者摆脱浮点和动态内存。
标签: embedded conways-game-of-life low-memory