Bug #14404
connecteur tableur : perfs déplorables sur un fichier ods
0%
Description
Avec le fichier en pièce jointe, sur tournai, le endpoint de base /data prenait 8,5 secondes. En mettant le fichier en CSV, ça prend 62 millisecondes.
Files
Related issues
History
Updated by Frédéric Péters over 8 years ago
En local,
>>> def f(): ... t0 = time.time() ... get_data_ods('/tmp/usage_des_actes_modif.ods') ... print time.time() - t0 ... >>> f() 10.8324098587
Ce fichier fait 4 Ko, 23 lignes, 3 colonnes.
Updated by Frédéric Péters over 8 years ago
- Subject changed from connecteur tableur : perfs déplorables sur de l'ods to connecteur tableur : perfs déplorables sur un fichier ods
La détection du nombre de colonnes/lignes se fait sur cette base :
<table:table-row table:number-rows-repeated="1048553" table:style-name="ro1"> <table:table-cell table:number-columns-repeated="16384"/> </table:table-row>
et badaboum.
Updated by Jean-Baptiste Jaillet over 8 years ago
il regarde chaque colonne vide puis dans chaque colonne il regarde chaque cellule ? (si je comprends bien).
Et il regarde celle qui sont pas vide...
Updated by Frédéric Péters over 8 years ago
- Related to Développement #11260: mise en base des données du CSV added
Updated by Frédéric Péters over 8 years ago
Sans passer par #11260, un truc qui doit pouvoir être fait c'est charger le fichier en mode "stream", limiter le nombre de colonnes à celles où le connecteur a défini des identifiants, s'arrêter dès qu'une ligne est totalement vide.
Updated by Benjamin Dauvergne over 8 years ago
Le plus simple je pense c'est de convertir au chargement vers un format unique, par exemple CSV/UTF-8, mais si on sait écrire de l'ODS ça pourrait ça. À voir si on pourrait quand même garder le fichier original pour quand l'utilisateur veut le télécharger (quelqu'un qui utilise XLS n'a peut être pas de quoi éditer correctement du CSV/UTF-8 ou de l'ODS).
Updated by Frédéric Péters almost 8 years ago
- File Communes-GRC.ods Communes-GRC.ods added
Autre fichier pareillement gros, rencontré dans #17100.
Updated by Frédéric Péters almost 7 years ago
Pour aller au-delà des fichiers déclarant par erreur des milliers de lignes ou colonnes, ce fichier (via #24726 ) (au premier regard) ne me semble pas exposer ces soucis. Mais décompressé son content.xml fait 3,6 Mo, ce qui suffirait à être trop lent. Ajouté à pyexcel qui est bien peu rapide, parser le fichier prend genre 5 secondes (dans mon test en local).
Bref, sur la proposition de Benjamin, produire un CSV "cache", ça serait bienvenu.
Updated by Frédéric Péters about 6 years ago
- Has duplicate Support #30282: csvdatasource: pyexcel-ods lent à la lecture d'un ods de 217 lignes added
Updated by Frédéric Péters almost 5 years ago
- Related to Développement #44020: développer notre petit module de lecture ods added