Development #35570
perfs affichage tableau de demande (bis)
Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
25 août 2019
Echéance:
% réalisé:
0%
Temps estimé:
Patch proposed:
Oui
Planning:
Non
Description
Dans #35437 je me suis arrêté au gain principal mais la même technique (passer par un dictionnaire) s'applique pour optimiser la phase d'exclusion des brouillons qui a lieu au début, quand on veut lister toutes les demandes.
item_ids = formdata_class.keys() # 0.193354845047 drafts = formdata_class.get_ids_with_indexed_value('status', 'draft') # 0.476522922516 item_ids = [x for x in item_ids if x not in drafts] # 2.81536078453
Fichiers
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a plus de 4 ans
- Fichier 0001-perfs-use-a-dictionary-to-exclude-drafts-from-tables.patch 0001-perfs-use-a-dictionary-to-exclude-drafts-from-tables.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Frédéric Péters il y a plus de 4 ans
- Fichier 0001-perfs-use-a-dictionary-to-exclude-drafts-from-tables.patch 0001-perfs-use-a-dictionary-to-exclude-drafts-from-tables.patch ajouté
Sur les demandes testées (~80000), code actuel :
drafts = formdata_class.get_ids_with_indexed_value('status', 'draft') print 't1', time.time() - t0 item_ids = [x for x in item_ids if x not in drafts] print 't2', time.time() - t0
t1 0.105854034424, t2 2.28886604309 (en exécutant cinq fois et en prenant le meilleur)
et nouveau code
drafts = {x: True for x in formdata_class.get_ids_with_indexed_value('status', 'draft')} print 't1', time.time() - t0 item_ids = [x for x in item_ids if x not in drafts] print 't2', time.time() - t0
t1 0.10389995575, t2 0.11067700386 (pareil, en exécutant cinq fois et en prenant le meilleur)
Mis à jour par Nicolas Roche il y a plus de 4 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Frédéric Péters il y a plus de 4 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 154fcca2b668bc732b07be095d972212517d1f19 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Sun Aug 25 09:49:51 2019 +0200 perfs: use a dictionary to exclude drafts from tables (#35570)
Mis à jour par Frédéric Péters il y a plus de 4 ans
- Statut changé de Résolu (à déployer) à Solution déployée
perfs: use a dictionary to exclude drafts from tables (#35570)