Утечка памяти Corona SDK - PullRequest
       1

Утечка памяти Corona SDK

1 голос
/ 26 сентября 2011

Я пишу игру, используя Corona для класса игрового дизайна, и, хотя я все еще учусь, у меня есть большинство основ. Прямо сейчас у меня есть ситуация, когда программа замедляется после двух минут или около того воспроизведения, и я не совсем уверен, почему. Я уже реализовал код для удаления всех тел, которые выполнили свою задачу, и я даже настроил его для печати уведомления при удалении каждого из них.

http://www.mediafire.com/?5fz7ru0c6euwq1k

Это ссылка для скачивания. Любая помощь очень ценится. Спасибо!

1 Ответ

6 голосов
/ 26 сентября 2011

Прежде всего, вы проверили использование памяти?Если проблема постепенно замедляется, это, безусловно, звучит как утечка памяти, но вам необходимо проверить использование памяти, чтобы быть уверенным.Распечатайте использование памяти на консоли следующим образом:

print("mem "..collectgarbage("count"))

Поместите это в прослушиватель enterFrame, чтобы вы могли непрерывно наблюдать за использованием памяти во время работы приложения.

Теперь, когда выВидя объем памяти, используемой вашим приложением, наиболее важным шагом в любой отладке является изоляция проблемы.То есть, ноль на месте в коде, который вызывает проблему.Для некоторых проблем вы можете использовать такие методы, как печать отладочных сообщений на консоль, но в случае утечки памяти лучше всего часто выборочно комментировать разделы кода, чтобы увидеть, как это влияет на память.

ДляНапример, сначала закомментируйте прослушиватели событий на одном экране, а затем проверьте использование памяти.Если утечка исчезла, то вы знаете, что проблема была связана с этими слушателями событий.Если утечка не затронута, восстановите эти прослушиватели событий и закомментируйте следующую возможную причину утечки памяти.промойте и повторите

Как только вы узнаете точную часть кода, которая вызывает утечку, вы, вероятно, сможете увидеть, что вам нужно исправить.Если нет, спросите об этом конкретном коде.

...