session_start() blokuje načítání
- Terka04
- Člen | 44
Ahoj,
řeším velmi pomalé načítání webu dělané v Nette. Zrychlila jsem vše,
co jsem dokázala vyprofilovat s debugger time, ale po instalaci Blackfire už
vidím, kde to ještě blokuje.
Načítání webu s laděnkou – cca 8 vteřin
Načítání webu s vypnutou laděnkou – cca 2 vteřiny
Na co jsem přišla:
- Vykreslování blokuje laděnka – ok, dělalo to maxDepth: 10 a maxLength: 1500 (vyřešeno)
- Vykreslování blokuje příliš dlouhý proces dotazu do databáze (to si vyladím, nebude problém)
- Vykreslování blokuje session_start
Nemám jasno, proč, nebo jak opravit session_start, který trvá třeba i 3 vteřiny, někdy půl. Jak, nebo kam se podívát ohledně session? Když jsem zkoušela zmeřit přímo session_start, vyšlo mi „0.00012397766113281 s“
try {
// session_start returns false on failure only sometimes
$start = microtime(true);
Nette\Utils\Callback::invokeSafe('session_start', [['read_and_close' => $this->readAndClose]], function (string $message) use (&$e): void {
$e = new Nette\InvalidStateException($message);
});
$time_elapsed_secs = microtime(true) - $start;
var_dump( $time_elapsed_secs); die();
} catch (\Exception $e) {
}
Sessions zapínám v common.neon
session:
expiration: "14 days"
autoStart: true
Blackfire screen: https://ibb.co/mRYsw1Y
Děkuji všem za případnou pomoc a nasměrování. :)
Edit: PHP 7.4, Nette 3.0
Editoval Terka04 (6. 1. 2022 19:25)