Flush Tracy ve Worker situaci

DefenestrationPraha
Člen | 134
+
0
-

Toto téma souvisí úzce s tématem

https://forum.nette.org/…ompatibilita

Dělám experimenty s chováním Nette ve FrankenPHP a nemohu z Nette „dostat“ Tracy Bar. Maximálně se mi ji podařilo vypsat do outputu (když jsem spustil ručně

    if (Debugger::isEnabled() && Debugger::$showBar) {
        Debugger::getStrategy()->renderBar();
    }

ale nikdy ne do HTTP response. Což je trochu nemilé, protože jinak ten systém pod FrankenPHP chodí dobře, svižně, a rád bych na něm debugoval a optimalizoval, k čemuž je Tracy skvělá.

Problém je patrně v tom, že Tracy se vypisuje prostřednictvím svého shutdownHandleru, a ten se nezavolá patrně proto, že worker skript neskončil.

Rád bych se tedy zeptal: je možné nějak Tracy přimět k tomu, aby vydala svá tajemství, i nějak ručně? Prostě ji přimět k tomu, aby zapsala ten svůj doušek na závěr (<script…>) tehdy, když chci? Třeba v přetížení Presenter::shutdown nebo něčem podobném?

Protože pokud by to šlo, tak bych si ji takto rád vyvolal, třeba jen v situaci, že běží ve worker threadu. To bych dokázal zjistit pomocí systémové proměnné.

raneomik
Člen | 1
+
0
-

Dobrý večer,

Rád bych věděl jak na tom toto téma po víc jak roce je ? Nedávno jsem totiž začínal s Nette a taky ho zkoušel pod frankenPHP, a v debug modu jsem padl přesně na vaše problémy

  • žádná Tracy bar
  • žádná bluescreen

Pak po dlouhých diskuzích s chatGPT, koumání a nakonec náhody po úvaze ¨jak vyvolat shutdownHandler¨ mně napadlo tam dát exit, a jak Tracy bar tak bluescreen (tady bylo třeba Debugger::exceptionHandler($e)) tu náhle byly. Bohužel to taky ale znamená že frankenPHP vyjde z worker modu, a nejspíš ze všech threadů… V lokálním Dev prostředí kdy na projektu pracuje jen jeden člověk mi to ale přijde jako dobrý kompromis když je to pod podmínkou kdy Tracy bar a bluescreen jsou třeba. I tak se mi to ve frankenPHP zdálo o něco výkonější, ve zkoušce s hey, tam kde mi to v tradičním single-threadu v php built-in serveru ukazovalo 40–50req/s (1200–1300 bez xdebug + no-debug. nginx-fpm či apache jsem nezkoušel), franken dává 90–100 req/s (bez xdebug a v prod modu bez exitu to šplhalo až na 3400 req/s).

Zde jsou k dispozici výsledky ¨našich¨ koumání s chatgpt : v nette a v contributte

Editoval raneomik (12. 1. 21:44)