Утекает память при использовании ORM
Перевел более менее стандартные запросы на ORM, при этом наблюдаю утечку памяти, которая при уже 200 запросов в цикле превращается в проблему, каждый запрос дополнительные 1,2Мб Переменные за собой чищу, кеширование не использую.
Код вызова и код процедуры ниже:
Код вызова и код процедуры ниже:
memoryUsage(memory_get_usage(), $base_memory_usage); $aViewerChannelGrid = $this->oEngine->PluginTvh4_Programs_ViewerProgramsGrid($oChannel->getId(), $next_date, (7 * 24 * 60 * 60) - 1); memoryUsage(memory_get_usage(), $base_memory_usage);
public function ViewerProgramsGrid($sNumKanal, $sDataStart, $sDateInterval, $sTimeZone = 3, $sLimit = 0) { $aFilter = array(); $aFilter['#where'] = array( 'channel_id = ?d and date_time BETWEEN ? and DATE_ADD(?, interval ?d SECOND)' => array($sNumKanal, $sDataStart, $sDataStart, $sDateInterval)); $aFilter['#cache'] = ''; $aFilter['#order']['date_time'] = 'asc'; if ($sLimit > 0) { $aFilter['#limit'] = $sLimit; } return ($this->PluginTvh4_ModulePrograms_GetItemsByFilter($aFilter)); }
Выгружаю канал: 1 Смещение: 3 Bytes diff: 2090496 Bytes diff: 3104832 Выгружаю канал: 2 Смещение: 3 Bytes diff: 5362608 Bytes diff: 6391984 0% выполнения Выгружаю канал: 3 Смещение: 3 Bytes diff: 8151328 Bytes diff: 9130480 Выгружаю канал: 4 Смещение: 3 Bytes diff: 11167112 Bytes diff: 12199200 Выгружаю канал: 5 Смещение: 3 Bytes diff: 13787744 Bytes diff: 14859248 Выгружаю канал: 101 Смещение: 3 Bytes diff: 17022656 Bytes diff: 18310896 Выгружаю канал: 102 Смещение: 3 Bytes diff: 21423712 Bytes diff: 22202112