Improve quality of event performance tracking
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- php
- Ambito
- observability, performance
Direzione di ricerca
Inizia individuando il raccoglitore dei dati degli eventi e l’implementazione di wildcard-listener del core di October descritta nell’issue. Verifica come vengono ordinate le priorità dei listener, quindi verifica che le misurazioni coprano l’intera esecuzione dell’evento e che i dati temporali raccolti vengano registrati per ogni evento.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Remake of https://github.com/rainlab/debugbar-plugin/issues/42 by @LukeTowers.
Right now performance / timing tracking on events uses the difference between when the last event was fired to when the current event was fired to say how long a given event took to process. This is obviously wildly inaccurate and unhelpful, so it would be better if we could instead implement our own event data collector that actually tracked how long a given event was taking to execute by hooking one wildcard listener as the highest priority listener (with PHP_INT_MAX) and another wildcard listener as the lowest priority listener (with PHP_INT_MIN) and then recording the timing difference between those two listeners being fired.
This would require a change being made to the October core as currently wildcard listeners don't support subscribing to events with priority, and even if they did you'd still have to ensure that they were added to the priority stream of the non-wildcard listeners correctly.
Something roughly like the following:
$events->listen('*', [$this, 'onWildcardEventStart'], PHP_INT_MAX);
$events->listen('*', [$this, 'onWildcardEventEnd'], PHP_INT_MIN);
}
protected $timings = [];
public function onWildCardEventStart($name = null, $data = [])
{
if (empty($name)) { return; }
$this->timings[$name] = microtime(true);
}
public function onWildCardEventEnd($name = null, $data = [])
{
if (empty($name)) { return; }
$this->addMeasure($name, $this->timings[$name], microtime(true), $this->prepareParams($data));
}
- Lingua principale
- PHP
- Stelle
- 12
- Fork
- 9
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di wintercms/wn-debugbar-plugin
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 58/100
wintercms/wn-debugbar-plugin#26 · 1 commento ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
wintercms/wn-debugbar-plugin#25 · 2 commenti ·
-
Add ability to click on Twig paths to open editor with that file selectedForse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
wintercms/wn-debugbar-plugin#15 · 4 commenti ·
Tutte le issue di wintercms/wn-debugbar-plugin
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
backdrop-contrib/commerce#60 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 76/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 84/100
TYPO3-Documentation/TYPO3CMS-Reference-CoreApi#7330 ·
I maintainer di solito rispondono entro 1 giorno
-
dependencies
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100