allowed memory size při vytváření cache

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Miri
Člen | 117
+
0
-

Ahoj,

prosím o pomoc. Při přepnutí na produkční verzi/promazání cache mi to zahlasí tuto chybu:

Fatal error: Allowed memory size of 100663296 bytes exhausted (tried to allocate 6151 bytes) in /www/sites/1/.../nette/database/src/Database/Table/Selection.php:522

Na serveru je memmory_size nastavená na 100MB, to už je víc než dost. Děje se to opravdu jen při vytváření cachovacích souborů ve složce temp. Nesetkal se s tím někdo, nevíte kde je problém?

Editoval Miri (27. 10. 2017 10:18)

CZechBoY
Člen | 3608
+
0
-

Jak velka appka to je? Kolik sluzeb v DIC, tabulek v db…

matopeto
Člen | 395
+
0
-

Ocividne 100MB nebude dost… na localhoste mas kolko?

Miri
Člen | 117
+
0
-

Na locale nemám plnou databázi, takže tam se nevybírá tolik dat.

Každopádně děje se tov případě, že použiju nette pager, který si namapuje všechny články (cca 1000) a pak vykresluje jen 16 článků.

Nejspíš to ale nette cache přednačítá rovnou všechno a celkem se to zahltí.
Tabulek v DB je poměrně hodně cca 50

CZechBoY
Člen | 3608
+
+2
-

Pouzij nejakej limit vysledku.

Resil jsem neco takovyho tento tyden :D akorat se mi prijoinovalo pul mega radku no… :D

Editoval CZechBoY (27. 10. 2017 13:38)

Miri
Člen | 117
+
0
-

Nerozumím co myslíš tím limit výsledku. Nemáš nějaký příklad ?

CZechBoY
Člen | 3608
+
0
-
$selection->limit(30);

omezí počet řádků na 30

Miri
Člen | 117
+
0
-

Tak o tom se mi stará paginator. Přidává limit a offset na 16. Bohužel si musí načíst kolik těch článků tam celkově je a tam nejspíš nastává kámen úrazu.

CZechBoY
Člen | 3608
+
+1
-

aha, tak potom použij

$selection->count('*')

namísto klasického

count($selection);

nebo

$selection->count();
thm
Člen | 147
+
0
-

Mě se to dělo při načítání knihovny mPDF. Dal jsem jí mimo dosah robotloaderu a načítám require_once __DIR__ . '/../MPDF60/mpdf.php';

Editoval thm (30. 10. 2017 13:40)

Pavel Kravčík
Člen | 1196
+
+1
-

@thm: Můžeš použít netterobots.txt a dovnitř dát ignore disallow: /.

CZechBoY
Člen | 3608
+
0
-

mpf by se mělo načítat composerem ne?

Pavel Kravčík
Člen | 1196
+
0
-

@CZechBoY: Ano, ale ve starší verzi bylo lepší si to stáhnout zvlášť a osekat těch 100MB ručně na třeba 6MB. :) Takže hádám, že kvůli tomu to má jinak.