我正在使用Corona为游戏设计课程编写游戏,虽然我还在学习,但我已经掌握了大部分基础知识。现在,我有一个情况,即大约两分钟左右的比赛后节目会慢下来,我不完全确定原因。我已经实现了代码来删除所有已达到目的的机构,我甚至设置了在每个机构被删除时打印通知。
http://www.mediafire.com/?5fz7ru0c6euwq1k
这是下载链接。任何帮助是极大的赞赏。谢谢!
答案 0 :(得分:6)
首先,您检查了内存使用情况吗?如果问题逐渐减慢,那肯定听起来像是内存泄漏,但你需要检查内存使用情况以确定。将内存使用情况打印到控制台,如下所示:
print("mem "..collectgarbage("count"))
将它放在enterFrame监听器中,以便在应用程序运行时连续监视内存使用情况。
现在,当您看到应用程序消耗的内存时,任何类型的调试中最关键的一步就是隔离问题。也就是说,导致问题的代码中的零点。对于某些问题,您可以依赖于将调试消息打印到控制台等技术,但是对于内存泄漏,您最好的选择通常是选择性地注释掉代码的各个部分,以查看它对内存的影响。
例如,首先在一个屏幕上注释掉事件侦听器,然后检查内存使用情况。如果泄漏消失了,那么您就知道问题与这些事件监听器有关。如果泄漏不受影响,则恢复这些事件侦听器并注释掉下一个可能的内存泄漏原因。冲洗并重复
一旦您知道导致泄漏的确切代码部分,您可能会看到需要修复的内容。如果没有,请询问具体代码。