Domino 9 und frühere Versionen > ND8: Entwicklung

ArrayList in LS

<< < (2/3) > >>

Peter Klett:
@ata

da hast Du natürlich recht, m.W. sind Listen grundsätzlich nur durch den verfügbaren Arbeitsspeicher begrenzt. Wenn ich Dokumente in eine Liste aufnehme, verbrauchen die natürlich viel mehr Speicher, als wenn nur ein String aufgenommen wird. Bei einem gerade ausgeführten Test unter 8.5.1 über Citrix rauchte der Client bei Aufnahme des Dokumentes 23.662 in eine Liste ab. Der gleiche Test in der gleichen DB unter 7.03 lokal liest gerade Dokument 27.500 (werde den Test aber abbrechen, dauert mir zu lange), habe lokal wohl mehr Ressourcen (Arbeitsspeicher). (Nachtrag: Ende war bei Dokument 28.245)

Etwas besonders verhalten sich neue Dokumente, da hatte ich mal ein Problem bei über 3.000 neuen ungespeicherten Dokumenten, die mochte Notes nicht.

Bei Massenverarbeitung von Dokumenten merke ich mir in der Liste nur die UniversalID und greife bei Bedarf über die ID auf das Dokument zu. Das ist zwar gefühlt geringfügig langsamer, packt dafür aber viel mehr Dokumente.

@Pitiyankee, @pram

in Euren Beispielen arbeitet Ihr mit Arrays, nicht mit Listen, die sind generell in der Größe eingeschränkt.

pram:
@peter

das stimmt natürlich, in Arrays kann man max 65k Elemente packen, wobei Arrays wohl schneller sind als Listen, insb. wenn man einen numerischen Index hat.

Ähnliche Tests wie du mit Dokumente in ein Array habe ich auch mal gemacht und da war bei ca 8000 am Client schluss. Die Grenze scheint wohl sehr von den verfügbaren Ressourcen abzuhängen.

Zur Massenverarbeitung kann man je nach Anwendungsfall auch die NotesDocumentCollection verwenden (diese mach intern auch nichts anderes, als sich die Note-ID zu merken)
Die Dokumente kommen dann allerdings nicht unbedingt in der Reihenfolge zurück in der man sie einfügt und man muss einige Tricks machen um sich eine leere Collection zu erzeugen.

flaite:
Peter,

wobei "List" in LotusScript in einer für Programmiersprachen höchst singulären Weise gebraucht wird. List meint in aller Regel so etwas wie einen hinsichtlich seiner Elemente variablen Array. Und java.util.ArrayList sowieso. Die Verwendung des Begriffs "List" in LotusScript stößt Java-Programmierern bei LotusScript meist verwirrend auf, da sie eine andere Datenstruktur erwarten. Hatten wir hier schon öfters.  

Gruß Axel

ata:
... eine leere Collection erzeugen ist nicht schwer - es gibt die Möglichkeit Profildokumente einer Notesdatenbank in einer Collection zu initialisieren. Wenn du hier nach einem Profil suchst, das es nicht gibt, hast du eine leere Collection. Der kannst du dann deine Dokumente hinzufügen - die sind in der Folge, wie du sie eingefügt hast...

Toni

oxyd21:
Da bin ich mal ein paar Tage nicht da und schon füllt sich der Thread.  :)

Ich denke ich werde mich mal dran machen, mir die Struktur nach meinen Bedürfnissen aufzubauen. Die Grenzen wären hier erst einmal vernachlässigbar, da die Datenstruktur nur eine "geringe" Anzahl von meinen Objekten enthalten soll. Ist sicherlich dann nicht uneingeschränkt einsetzbar aber, aber solange man die Grenzen kennt, wird's wohl passen.

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln