[dibi] Při volání fetch() v cyklu se spotřebuje celá paměť
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- raketoplan2005
- Člen | 147
Ahoj,
mám cyklus, ve kterém stahuji data z databáze. Problém je v tom, že s každým dotazem roste množství využité paměti.
public function actionTest(\DibiConnection $database)
{
for ($i = 0; $i < 5000; $i++) {
echo $i . PHP_EOL;
$memory = memory_get_usage(true);
echo $memory / 1000000 . PHP_EOL;
$foo = $database->select('*')->from('table')->where('id = %i', 1)->fetch();
echo '+' . (memory_get_usage(true) - $memory) / 1000000 . PHP_EOL;
}
exit();
}
Čím by to mohlo být? Resp. proč se paměť neuvolňuje?
Děkuji
Editoval raketoplan2005 (8. 6. 2015 17:57)
- raketoplan2005
- Člen | 147
@DavidKlouček: To co je výše je modelový příklad. Typicky potřebuji s danou entitou ještě nějak pracovat a zatímco po jedné by se mi do paměti vejít měly (pokud by se uvolňovala), všechny najednou ne.
- raketoplan2005
- Člen | 147
Omlouvám se – vyřešeno díky @Milo na dibi foru – zapomněl jsem na profiler.