Einzelnen Beitrag anzeigen

madas

Registriert seit: 9. Aug 2007
207 Beiträge
 
#1

Re: VirtualTreeView - Wer hat die Weiterentwicklung übernomm

  Alt 1. Apr 2009, 12:12
Zitat von Tegi:
@Madas
Benutzt du die aktuelle Version?
Das Autofitting war seit etwa 4.6.x, wenn ich mich recht erinnere langsam, da die Implementierung dummerweise nach dem ersten DoGetCellContentMargin versehentlich mittels WM_SETREDRAW das Zeichnen wieder erlaubte. Das habe ich aber in der 4.8.0 oder 4.8.1 gefixt.
Sowohl in synthetischen Tests, wie auch in Real-World-Applikationen ist die Leistung dadurch deutlich gestiegen.
Also wir haben es mit der 4.7.0 und 4.8.5 getestet gehabt. Und da war es extrem langsam.
WM_SETREDRAW wird in der VirtualTree.pas genau dreimal aufgerufen. In unserer aktuellen Version (4.7.0)
und in der 4.8.5 passiert dies genau so oft und an den gleichen Stellen. Einzige Änderung die an den
Stellen hinzukam ist (FUpdateCount = 0). Was aber keine Auswirkung hat.

Damit Ihr das Ganze auch mal nachvollziehen könnt, ist im Anhang ein kleines Testprojekt mit "nur" 10000 Knoten (Zeit für Resize wird gestoppt). Ist onBeforeCellPaint als Event registriert dann dauert das Optimieren einer Spalte (unter WinXp) knapp 8s . Ohne onBeforeCellPaint nur 300ms.

Das Projekt wurde unter D2009 erstellt und die Version vom VST ist 4.8.5 .
Angehängte Dateien
Dateityp: zip vstperformance_133.zip (414,7 KB, 11x aufgerufen)
  Mit Zitat antworten Zitat