Schneller Klassen laden

12/03/2012 - 17:58 von Heinz-Mario Frühbeis | Report spam
Hallo!

For i = 1 To 125
Set LI = lvClass.Obj.ListItems.Add("Item" & CStr(i))
With LI
.Icon = nIcon
.Caption = "Neues Item_" & CStr(i)
End With
Next i

lvClass ist eine Klasse in einer externen DLL (ohne Verweis).
Diese Klasse beinhaltet eine (interne) Klasse 'ListItems'.
Und 'ListItems' managed dann die Klasse "ListItem'.

Dieser Aufruf braucht ca. 10 Sek.!
Und soweit ich das nachvollziehen kann làuft der Refresh (also 125 * Icon
und Caption zeichnen) dann_ ratzfatz.

Wie kriege ich denn diese (z. Bsp.) 125 ListItem-Klassen schneller geladen?

Mit Gruß
Heinz-Mario Frühbeis
 

Lesen sie die antworten

#1 W. Wolf
12/03/2012 - 18:20 | Warnen spam
"Heinz-Mario Frühbeis" schrieb

Wie kriege ich denn diese (z. Bsp.) 125 ListItem-Klassen schneller geladen?




Mußt halt ein bißchen Profiling machen: Hinter jedem
Aufruf die Zeit vom QueryPerformanceCounter holen und per
Debug.print ausgeben, das Ergebnis in ein Excel kopieren
und hier grafisch auswerten. Dann wirst Du den Zeitfresser
bald ermittelt haben. Wer das intern in deiner Klasse ist,
kann dir hier sicher niemand beantworten.
Folgende Ansàtze könnten helfen:
- ein Array ist schneller als eine Collection
- es gibt auch schnellere Collections als die in VB
- ein UDT ist schneller als eine Klasse

Schönen Gruß
W. Wolf

Ähnliche fragen