У приложения App Engine возникают проблемы с утечкой памяти. Я записываю использование памяти на пути поиска проблемы.Использование памяти сильно отличается (и, как ни странно) между интерфейсом и бэкендом
from google.appengine.api.runtime import memory_usage
memory_usage().current()
Функция, которая превысила «ограниченную ограниченную память» в 128 МБ, находится в отложенной задаче. Он должен вести себя одинаково каждый раз. Я перезапускаю его из очереди задач консоли (backend) и из внешнего интерфейса через get-request. Оба получат исключение после 6-го журнала.
Результат отличается это способ, которым я не могу обернуть мою голову вокруг:
<Frontend-run>
1: 40.3515625
2: 50.3515625
3: 59.71875
4: 63.5234375
5: 72.49609375
6: 75.48046875
<Backend-run>
1: 98.83203125
2: 98.83203125
3: 98.83203125
4: 98.83203125
5: 98.83203125
6: 98.83203125
У меня есть три проблемы с результатом:
- Один vs. две трети общего объема памяти бассейном выделяется в начале
- Бэкэнд использует вдвое больше памяти (работает с той же функцией)
- Использование памяти backend не увеличивается со временем, как это делает frontend.
Может ли кто-нибудь это понять для меня?