hallo,
ich wuesste gerne folgendes:
meine anwendung benutzt zum filtern von zeilen einer QTableView ein QSortFilterProxyModel.
meine anwenung ist ein tool zur ansicht von log-files. bestimmte eintraege werden mit dem QSortFilterProxyModel gefiltert.
allerdings ist bei mehreren tausend zeilen das filtern schon recht langsam.
1. gibt es hierfuer eine andere alternative bzw. irgendwas worauf man achten muesste damit es nicht so lang dauert ?
ich weiss dass bestimmte suchmuster (regex, wildcard etc.) auswirkungen auf die filterdauer haben, aber selbst bei exaktem filter (einfacher string wird als suchmuster vorgegeben), dauert es recht lang (unter umstaenden ne halbe bis eine minute fuer ca. 100.000 eintraege der source-view die zu filtern sind).
2. wenn man obiges nicht umgehen kann: wie kann ich herausfinden wann der proxy mit dem filtern fertig ist (benutzer muesste informiert werden etc.).
danke.
QSortFilterProxyModel sehr lahm
...
weil sich die suchdauer mit aenderung des such-patterns veraendert und nicht davon abhaengig ist, wieviele elemente in der view zu sehen sind: ich kann mit komplexem pattern suchen und nur wenige matches haben (dauert lange) oder mit einfachem pattern (fixed string) suchen und viele matches haben (dauert unter umstaenden kuerzer) .. muesste also am proxy liegen
folgendes, nur damit klar ist worum es geht:
zum filtern wird eine ableitung der klasse QSortFilterProxyModel verwendet wobei die ergebnisse in einer QTableView angezeigt werden.
2.5 Mio zeilen in 20 Sek. !?!?! -->
wieso solche messungen, wenn Du doch selbst anscheinend nicht "raten" musst?
sind die 2.5 mio zeilen auch auf solch eine ausgangssituation bezogen !?!?
falls ja, waere es schoen, wenn Du mal genau schreiben koenntest, was Du eigentlich genau gemessen hast mit den 20 Sek. (start, ende)????
das waere vielleicht hilfreicher.
cheers.
zum filtern wird eine ableitung der klasse QSortFilterProxyModel verwendet wobei die ergebnisse in einer QTableView angezeigt werden.
2.5 Mio zeilen in 20 Sek. !?!?! -->
wieso solche messungen, wenn Du doch selbst anscheinend nicht "raten" musst?
sind die 2.5 mio zeilen auch auf solch eine ausgangssituation bezogen !?!?
falls ja, waere es schoen, wenn Du mal genau schreiben koenntest, was Du eigentlich genau gemessen hast mit den 20 Sek. (start, ende)????
das waere vielleicht hilfreicher.
cheers.
-
Oliver Hom
- Beiträge: 33
- Registriert: 27. Mai 2009 12:44
Ich habe auch ein Proxy zum Filtern von Logeinträgen, selbst bei komplexen Ausdrücken geschieht dies bei 20000 Zeilen sofort.
Bei der Entwicklung hatte ich auch mal eine langsame Phase, dort war aber mein Modell kaputt bzw. nicht optimal.
Ich würde mir als erstes das Modell nochmal genauer anschauen.
Gruß,
Oliver
Bei der Entwicklung hatte ich auch mal eine langsame Phase, dort war aber mein Modell kaputt bzw. nicht optimal.
Ich würde mir als erstes das Modell nochmal genauer anschauen.
Gruß,
Oliver