misc: record long /live (#83910) #868
Loading…
Reference in New Issue
No description provided.
Delete Branch "wip/83910-record-errors-on-long-live"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Avec l'accumulation de données dans un dictionnaire timings, qui sera repris dans la trace attachée à l'erreur,
ac4af55b5a
to352ba7a1e3
WIP: misc: record long /live (#83910)to misc: record long /live (#83910)@ -819,3 +823,4 @@
result = {}
for field in displayed_fields:
result[field.id] = {'visible': field.is_visible(formdata.data, formdata.formdef)}
timings['visibility'] = get_request().get_duration()
Utiliser toujours « get_request().get_duration() » va donner une liste de temps absolus par rapport à t0, mais on ne verra pas l'ordre des calculs (sans revenir au code) et on aura du mal à calculer ce qui a pris du temps. Je pense qu'il faudrait plutôt à chaque fois enregistrer le délai du calcul, genre ici:
et partout pareil dans la suite... c'est un peu plus pénible mais ça donnera un dictionnaire timings plus simple à exploiter.
Ok pour des temps unitaires, pour l'ordre les dictionnaires sont ordonnés depuis quelques versions de python, ça ne me posait pas de problème.
Fait, mais comme ça mettait des temps formatés façon 2.32e-06 peu comparables entre eux, j'ai modifié en .4f pour faciliter la lecture. (ça peut faire quantité de "0.0000" mais il faut les garder parce qu'ils permettent d'identifier l'ordre.
@ -953,2 +960,4 @@
entry['locked'] = locked
if get_request().get_duration() > 5:
timings['totals'] = get_request().get_duration()
Ajouter ici un petit commentaire qui rappelle que timings est destiné à être visible dans la trace produite (aussi parce que ce commentaire sera visible dans la partie de code pointée par la trace, et ça nous (m') aidera à nous (me) rappeler qu'il faut regarder timings)
Fait.
352ba7a1e3
tob03776a4eb
b03776a4eb
to3e183b85f2
@ -841,6 +850,7 @@ class FormStatusPage(Directory, FormTemplateMixin):
for field in displayed_fields:
if field.key in ('item', 'items') and field.data_source:
add_timing(f'item-options-{field.id}')
Je voyais plutôt ça à la fin du bloc ... non ? parce que ça, le timing de item2 va être le temps de calcul de item1.
@ -878,6 +888,7 @@ class FormStatusPage(Directory, FormTemplateMixin):
for block, block_row, field, widget in get_all_field_widgets(form):
if block:
add_timing(f'field-block-{block.id}-row-{block_row}')
Pareil, à poser en fin du "if block" ?
@ -892,3 +903,3 @@
entry['block_row'] = 'element%s' % block_row
else:
add_timing(f'field-{field.id}')
Et pareil, à déplacer en fin du bloc for ?
ok pour les deux.
3e183b85f2
to9375e18631
J'aime bien tout ça.