Bonjour tout le monde,
Ca fait un baille que je n'avais pas posté sur le forum. Voila, j'expose mon problème.
J'utilise dans mon entreprise un logiciel BareTailPro, c'est un soft d'analyse de logs (de chaine de caractères en fait).
Ce soft est généraliste et assez lourd d'usage pour des utilisateurs lambda ( il faut utiliser une syntaxe assez complexe basé a coup d'opérateur booléen.
J'ai entrepris de faire un "clone" ou il y aurait une interface qui simplifierait l'usage. (Par exemple pour connaitre les positions de tel axe mécanique il suffirait de cliqué sur un checkbox).
La structure est assez simple, dans le haut de l'écran un listview qui affiche le fichier log (environ 140Mo) dans le bas de l'écran un listview qui affiche le resultat du tri effectué dans le listview du dessus.
Voici un exemple :
En fait mon principal problème est l'affichage du fichier log dans le premier listview.
J'ai donc fait une procedure qui ouvre le fichier et l'affiche dans le listview. J'ai ajouté des tempos afin de mesurer le temps utilisé par python pour effectué les processus.
La console me retourne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 def openfile(self): t1 = time.time() with open("-Combined.txt", "r") as f: text = f.readlines() t2 = time.time() print("Fichier chargé en mémoire en " + str(t2 - t1)) for lines in text: self.textEdit.addItem(lines) t3=time.time() print("Contenu affiché en " + str(t3-t2)) f.close()
Ce qui est bien, mais en réalité l'interface graphique affiche réellement après environ 1min15s en ornant d'un magnifique "pas de réponse" dans le titre du mainwindow.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Fichier charger en mémoire en 0.9394903182983398 Contenu affiché en 1.48594331741333
La c'est moins drôle.
Voici ma question,
Connaissez vous un moyen d'optimiser le rendu à l'écran de ce listview sachant que python apriori traite les données suffisament rapidement pour mon usage...
Merci par avance.
Partager