Projet

Général

Profil

Development #35570

perfs affichage tableau de demande (bis)

Ajouté par Frédéric Péters il y a plus de 4 ans. Mis à jour il y a plus de 4 ans.

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

Révision 154fcca2 (diff)
Ajouté par Frédéric Péters il y a plus de 4 ans

perfs: use a dictionary to exclude drafts from tables (#35570)

Historique

#1

Mis à jour par Frédéric Péters il y a plus de 4 ans

#2

Mis à jour par Frédéric Péters il y a plus de 4 ans

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)

#3

Mis à jour par Nicolas Roche il y a plus de 4 ans

  • Statut changé de Solution proposée à Solution validée
#4

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)
#5

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

Formats disponibles : Atom PDF