Best Practices > Diskussionen zu Best Practices

Performance

(1/4) > >>

TMC:
Ich starte mal einen Thread bezüglich Performance in Lotus Notes.

Anlass ist u.a. dieser Thread:
http://www.atnotes.de/index.php?board=9;action=display;threadid=15109


Heute habe ich mich gefragt, ob es performance-seitig einen Unterschied macht, ob man Dokumente einer View
a) über NotesViewNavigator
oder
b) über NotesViewEntryCollection
abarbeitet.

Code-Auszug für a):
Dim nav As NotesViewNavigator
Set nav= view.createViewnav()
Set viewentry=nav.GetFirstDocument
Do While Not (viewentry Is Nothing)
   (......)
   Set viewentry = nav.getnextdocument(viewentry)
Loop

Code-Auszug für b):
Dim vc As NotesViewEntryCollection
Set vc = view.AllEntries
Set viewentry = vc.GetFirstEntry()
Do While Not (viewentry Is Nothing)
   (......)
   Set viewentry = vc.GetNextEntry(viewentry)
Loop

Testumgebung:
- Athlon 2600 XP, 512 MB RAM
- Windows XP
- Notes 5.011 LOKAL
- 5.000 Dokumente, die in Excel exportiert werden

Ergebnis:
Ich habe exakt diesselbe Zeit gestoppt bei (a) und (b): 55,2 Sekunden.

Fazit:
Kein Unterschied. Es obliegt also der Entwickler-Freiheit, mit was man lieber arbeitet :-)

Matthias

TMC:
Noch ein Test: Variablen-Deklaration:

Ich habe im selben Script Option Declare ausgeschaltet und 12 Variablen-Deklarationen (Für Integer und String) auskommentiert.

Hier habe ich nur mit 1000 Dokumenten getestet.

Fazit:
Deklarierte Variablen: 12,1 Sekunden
Nicht deklarierte Variablen: 12,4 Sekunden

Matthias

koehlerbv:
Wenn Du schon dabei bist, Matthias, probiere das doch mal mit
NotesView.GetFirst/NextDocument

Da das ja die variante ist, um noch mehr Infos aus Docs in Views zu bekommen, als in der View stehen, wäre der Vergleich wirklich sehr interessant. IMHO sollte da die Performance sogar noch besser sein.

Es kommt aber natürlich immer auch darauf an, was "zwischen den Zeilen" steht, also, was zwischen der Bearbeitung zwischen Doc N und Doc N+1 passiert.

Sehr gespannt,
Bernhard

TMC:
Hier kann ich leider in dem o.g. Testszenario keinen Vergleich liefern, Bernhard, da ich hier mit NotesViewEntry arbeite, und hier in diesem Test mit doc nichts anfangen kann.

Wobei: Intuitiv hätte ich eh mit NotesView.GetFirst/NextDocument gearbeitet, wenn ich das Dokument selbst brauche.

Mal sehen, wenn ich Lust habe, mache ich es umgekehrt, und setze ein Testscript um, um das Viewentry in das doc zu kriegen (und da dann irgendwas damit zu machen).
Dann hätte man was zu vergleichen.....

Matthias

P.S. hochinteressant das Thema  :)

Semeaphoros:
Ich habe mal in einer Applikation das GetDocument durch das Durchwandern der EntryCollection ersetzt, da die Entry-Collection nur den Index, nicht jedoch die Dokumente zieht, ist die EntryCollection    d e u t l i c h   schneller, die genauen Daten habe ich nicht mehr, aber das war eine Performance-Verbesserung von 2,5 Std. auf 0,5 Std. herunter. Das Anziehen der Notes-Dokumente scheint enorm teuer zu sein.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln