Einzelnen Beitrag anzeigen

Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#5

Re: Problem mit der Sortierung im VST

  Alt 20. Mär 2009, 23:16
Hi generic,

Danke für Deine Hilfe!

Zitat von generic:
2) verwundert mich etwas. Vieleicht ein Fehler in der onCompare Methode?

ggf. selbst die Position suchen und an der richtigen Stellen den Knoten einbinden.
Dann brauchst du überhaupt keine Sortierung vom VST.
Probiere ich seit heute Abend schon. Also toAutoSort aus, manuelle Sortieren per OnHeaderClick und zusätzlich automatische Positionierung neuer Nodes per .InsertNode.

Das geht zwar, aber die Performance ist nur um den Faktor 5 besser als AutoSort. Ohne .InsertNode bzw. ohne Sortierung kann ich 10 Nodes per .AddChild in 0-16ms hinzufügen, das gleiche mit .InsertNode an amInsertBefore dauert ~300ms bei 1 Mio Nodes, ~ 750ms bei 2.5 Mio Nodes bis zu 3.3 Sekunden bei 5 Mio Nodes. Das ganze ist innerhalb eines .BeginUpdate/.EndUpdate Blocks.

Mit AutoSort dauert das bei Änderung des RootNodeCounts ca. 3.5 Sekunden bei ~ 10 neuen Nodes mit 2.5 Mio Einträgen.

Das würde für automatische UI Aktualisierung ausscheiden, da diese unbedienbar würde (Timer fügt neue DB Einträge alle 2,5-5 Sekunden hinzu). Wie gesagt, ich teste jetzt mit einem sonst leeren Form nur die VST-Funktion - da ist nichts mehr mit DB etc.

Was ich bräuchte, wär ein AddChild welches bei gleicher Performance die optische Position berücksichtigt (ganz oben oder ganz unten hinzufügen). InsertNode ist dafür zu langsam - und vor allen Dingen braucht mehr Zeit je größer der VST.RootNodeCount ist.

Gruß Assertor
Frederik
  Mit Zitat antworten Zitat