diff --git a/ecrire/lang/spip_fr.php b/ecrire/lang/spip_fr.php index d6b214022c33eaf5d17e69abcf00ba84a14d49f4..00a60693c91b599a32d05574f2621d0dbac422f7 100644 --- a/ecrire/lang/spip_fr.php +++ b/ecrire/lang/spip_fr.php @@ -732,6 +732,8 @@ et vous reconnecter au site. 'zbug_pagination_sans_critere' => 'Balise #PAGINATION sans critère {pagination} ou employé dans une boucle récursive', 'zbug_parametres_inclus_incorrects' => 'Paramètre d’inclusion incorrect : @param@', 'zbug_profile' => 'Temps de calcul : @time@', + 'zbug_profile_total' => 'Temps total : @time@', + 'zbug_profile_nb' => 'Nb calcul : @nb@', 'zbug_resultat' => 'résultat', 'zbug_serveur_indefini' => 'Serveur SQL indéfini', 'zbug_statistiques' => 'Statistiques des requêtes SQL classées par durée', diff --git a/ecrire/public/debusquer.php b/ecrire/public/debusquer.php index cbbc849ebdcf74585a442112100aacc01d52b1f4..f42d6d63629ca495773919a3ffe2df97272ef41c 100644 --- a/ecrire/public/debusquer.php +++ b/ecrire/public/debusquer.php @@ -677,6 +677,17 @@ function count_occ($regs) { return $encore; } +function debusquer_format_millisecondes($t) { + if ($t < 1000) { + $s = ''; + } else { + $s = sprintf('%d ', $x = floor($t / 1000)); + $t -= ($x * 1000); + } + + return $s . sprintf($s ? '%07.3f ms' : '%.3f ms', $t); +} + function debusquer_navigation_squelettes($self) { $res = ''; @@ -686,10 +697,18 @@ function debusquer_navigation_squelettes($self) { foreach ($GLOBALS['debug_objets']['sourcefile'] as $nom => $sourcefile) { $self2 = parametre_url($self, 'var_mode_objet', $nom); $nav = $boucles ? debusquer_navigation_boucles($boucles, $nom, $self, $sourcefile) : ''; - $temps = isset($GLOBALS['debug_objets']['profile'][$sourcefile]) ? _T( - 'zbug_profile', - ['time' => $GLOBALS['debug_objets']['profile'][$sourcefile]] - ) : ''; + $temps = ''; + if (!empty($GLOBALS['debug_objets']['profile'][$sourcefile])) { + $t = debusquer_format_millisecondes($GLOBALS['debug_objets']['profile'][$sourcefile]); + $temps = _T('zbug_profile', ['time' => $t]); + if (!empty($GLOBALS['debug_objets']['profile_nb'][$sourcefile])) { + $temps .= ' | ' . _T('zbug_profile_nb', ['nb' => $GLOBALS['debug_objets']['profile_nb'][$sourcefile]]); + } + if (!empty($GLOBALS['debug_objets']['profile_total'][$sourcefile])) { + $t = debusquer_format_millisecondes($GLOBALS['debug_objets']['profile_total'][$sourcefile]); + $temps .= ' | ' . _T('zbug_profile_total', ['time' => $t]); + } + } $res .= "<fieldset id='f_" . $nom . "'><legend>" . $t_skel diff --git a/ecrire/public/parametrer.php b/ecrire/public/parametrer.php index 38b8b1f41b4479174da6a12eaefc8901b4b61d84..61b6856e9acc84f094766b6ec6290e1c4db1ac7f 100644 --- a/ecrire/public/parametrer.php +++ b/ecrire/public/parametrer.php @@ -141,7 +141,7 @@ function public_parametrer_dist($fond, $contexte = '', $cache = '', string $conn // spip_log: un joli contexte $infos = presenter_contexte(array_filter($contexte)); - $profile = spip_timer($a); + $profile = spip_timer($a, true); spip_logger()->info("calcul ($profile) [$skel] $infos" . ' (' . strlen((string) $page['texte']) . ' octets)'); @@ -156,6 +156,8 @@ function public_parametrer_dist($fond, $contexte = '', $cache = '', string $conn $GLOBALS['debug_objets']['resultat'][$fonc . 'tout'] = $t; $GLOBALS['debug_objets']['courant'] = $courant; $GLOBALS['debug_objets']['profile'][$sourcefile] = $profile; + $GLOBALS['debug_objets']['profile_total'][$sourcefile] = ($GLOBALS['debug_objets']['profile_total'][$sourcefile] ?? 0) + $profile; + $GLOBALS['debug_objets']['profile_nb'][$sourcefile] = ($GLOBALS['debug_objets']['profile_nb'][$sourcefile] ?? 0) + 1; if ( $GLOBALS['debug_objets']['sourcefile'] && _request('var_mode_objet') == $fonc