Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: rabdos am 02.05.11 - 08:39:02

Titel: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: rabdos am 02.05.11 - 08:39:02
Hallo Leute,

nach fast 7 jähriger Forumszugehörigkeit ohne eigenen Post, muss ich nun meinen ersten aufmachen.  Bisher konnte ich immer alles über die Suche finden ;)

Aufgrund der erweiterten Nutzung von Webservice steigen wir von 7.0.2 auf 8.5.2 um. Ich habe natürlich viele alte Skripte in meiner Datenbank und eines davon wird zur Erarbeitung von mehreren Dateien benutzt. Dieses Skript erzeugt intern mehrere Listen, die groesste hat ca. 20000 Segmente und verarbeitet diese entsprechend.
Unter Notes 7 dauerte dieses Skript ca. 1 Std und unter 8.5.2 benötigt es ca. 8 Stunden. Ich werde hier fast verrückt, weil ich das Problem nicht finde, warum das so ist. Das Skript ist objektorientiert mit verschiedenen Klassen programmiert. Hat ca. 1900 (inkl. Leerzeilen) Zeilen und macht halt ne Menge.
Aufgefallen ist mir, dass das Skript mit der Zeit immer langsamer wird. Laut meiner Fortschrittsanzeige benötigen die ersten 10% ca 15 Minuten und danach wird es exponentiell immer langsamer in der Verarbeitung.

Kennt einer von euch dieses Problem mit der Verarbeitung von Arrays unter 8.5.2 ? Das ist das einzige was ich mir vorstellen kann, dass hier ein Problem mit den Listen vorliegt.

Ich habe das Skript vorhin auf einem PC das Skript unter Notes 7 gestartet und es ist nach einer Laufzeit von 30 Minuten bei 76%. Es muss an irgendwas unter 8.5 liegen.

Danke
Torsten
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: eknori am 02.05.11 - 08:51:36
Der einzige Weg, das zuverlässig herauszufinden dürfte das Profiling des Codes sein. Schlage vor, du setzt dich mit Teamstudio in Verbindung und holst dir eine Testlizenz für den Profiler. Dann siehst du, wo die Zeit verbraten wird.
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: Peter Klett am 02.05.11 - 08:55:17
Arbeitest Du mit Arrays (Redim meinArray (20000)) oder mit Listen (Dim meineListe List As ...)?

Hast Du mal die Ressourcen auf den Maschinen verglichen? Kann es sein, dass unter 8.5.2 weniger freier Arbeitsspeicher bereit steht und das Swappen Zeit kostet (falls das überhaupt genutzt werden kann, nur eine "aus-dem-Bauch"-Idee)?
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: rabdos am 02.05.11 - 09:05:14
das Format meiner Listen sieht so aus

Public Artikel List As Artikel

und dann hat z.b. die Klasse Artikel

Sub New(inDoc As NotesDocument, inNr As Integer, inMonBack As Integer, inLogFile As LogFile, profil As notesdocument)
      Set logFile = inLogFile
      Call GetAttribs(inDoc, inNr, inMonBack, profil)
End Sub

Alles eigentlich kein Hexenwerk. Hab das Ding grad ja unter Notes 7 laufen lassen und der Durchlauf hat unter einer Stunde gedauert. Das Skript lasse ich auch lokal in einer Kopie laufen, daher kann es kein Ressourcenproblem sein.

Teamstudio hab ich sogar drauf, aber mit dem Profiler noch nie gearbeitet. Mal sehen ob ich den zum laufen bekomm. Nutz immer nur den Configurator wenn ich was suche.
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: ghostmw am 02.05.11 - 09:52:02
Moin,

was steckt denn da für ein Betriebssystem drunter, habe grade bei einem Kunden ein ähnliches Verhalten.

Der Kunde ist bei seinen Clients von XP nach Win7 gewechselt, und bei einigen Buttons hinter denen Lotusscript Klassen und Funktionen stecken, laufen auch schrecklich langsam und man muss 2-3 mal klicken, bis es reagiert.

Könnte das damit in Zusammenhang stehen ?

Grüsse
Marco
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: rabdos am 02.05.11 - 09:58:45
in Verbindung mit Win 7 habe ich da auch etwas gelesen. Wir nutzen noch XP.
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: Peter Klett am 02.05.11 - 10:30:26
Das Skript lasse ich auch lokal in einer Kopie laufen, daher kann es kein Ressourcenproblem sein.
Deine Artikel-Klasse beinhaltet zwei Notesdokumente. Wenn Du eine Liste mit 20.000 Elementen füllst, sind das 40.000 Dokumente. Unter XP sind m.W. 2 GB Arbeitsspeicher direkt adressierbar. Wenn ich mich jetzt nicht total verrechnet habe, sind 40.000 Dokumente zu 50 KB 2 GB. Das ist Dein komplett adressierbarer Arbeitsspeicher, ohne, dass irgendein anderes Programm auch nur ein einziges Bit Speicher verwenden darf. 8.5. mit Eclipse wird aber sicherlich auch das eine oder andere Byte mehr haben wollen, als 7.

Wenn Du mehrere dieser Listen hast und nicht nach dem Verarbeiten alles sauber aufräumst, wird der freie Platz nicht gerade üppiger. Also, ich verstehe Deine Antwort nicht ...
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: pedsola am 02.05.11 - 10:36:10
FullTrimFix=0
setz den mal Dir auf dem Server.
Du wirst sehen, das hilft Wunder.

Hatten genau das gleiche Problem nach dem Sprung auf 8.5.x

Hier noch die Quelle dazu:
http://www-10.lotus.com/ldd/r5fixlist.nsf/Public/D731C9471F4FD93A85257638006DFA7C?OpenDocument (http://www-10.lotus.com/ldd/r5fixlist.nsf/Public/D731C9471F4FD93A85257638006DFA7C?OpenDocument)
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: Thomas Schulte am 02.05.11 - 10:46:37
Fortschrittsanzeige???

Doch nicht mit Print Befehlen. Oder? Wenn ja. Klemm die mal ab. Das Verhalten gab es schon unter V4, 5 und 6. Wenn man in Agenten excessiv mit Print Statements gearbeitet hat konnte man dem System beim einschlafen zuschauen.
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: rabdos am 02.05.11 - 13:10:01
Deine Artikel-Klasse beinhaltet zwei Notesdokumente. Wenn Du eine Liste mit 20.000 Elementen füllst, sind das 40.000 Dokumente. Unter XP sind m.W. 2 GB Arbeitsspeicher direkt adressierbar. Wenn ich mich jetzt nicht total verrechnet habe, sind 40.000 Dokumente zu 50 KB 2 GB. Das ist Dein komplett adressierbarer Arbeitsspeicher, ohne, dass irgendein anderes Programm auch nur ein einziges Bit Speicher verwenden darf. 8.5. mit Eclipse wird aber sicherlich auch das eine oder andere Byte mehr haben wollen, als 7.

Wenn Du mehrere dieser Listen hast und nicht nach dem Verarbeiten alles sauber aufräumst, wird der freie Platz nicht gerade üppiger. Also, ich verstehe Deine Antwort nicht ...

Wie beschreibe ich das jetzt mal vernünftig. Also das Skript dient zur Abrechnung von Artikeln.
Ich lese ca. 12000 Dokumente ein und baue daraus eine Liste aus verschiedenen Feldern, z.b. Institutsnummer, Endstelle, usw. Diese Liste verarbeite ich dann in einer weiteren Liste bis ich zuletzt 6 Dateien rausschiebe. Eine dieser Dateien ist z.b. für einen SAP-Import.
Artikel werden es zum Schluss knapp 19000. Wie kommst du auf 40000 Dokumente? Oder habe ich einen Logikfehler. Sollte ich wirklich jedes Dokument von Hand aus dem Speicher löschen, wenn alle Felder ausgelesen wurden ?

Ich habe das Skript nun einmal im Hintergrund laufen. Speicherauslastung liegt bei 1,5GB. Habe gleich nen Meeting, mal sehen ob der sich verändert.


@Batped
Das Skript läuft ja lokal. Oder kann ich da auch den Wert einstellen ?

@Thomas
Wie weisst du denn dann wie weit das Skript ist? Habe auch schon Popup-Statusfenster gebaut, aber von denen habe ich wieder Abstand genommen, weil man die nicht richtig Debuggen kann.

@eknori
Ich warte noch auf meine Serial für den Profiler ;)


Danke für eure Hilfe
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: Thomas Schulte am 02.05.11 - 13:28:57
Wenn ich grundsätzlich weiss das das Script läuft, dann bau ich das so um, das es nur noch jedes 1000 ste oder 5000 ste Mal piep sagt. Vor allem dann, wenn ich da Massen von Dokumenten verarbeite. Jeder Print auf dem Server läuft nämlich ins Log und initiiert damit einen Schreibzyklus. Vollkommen egal wie performant das IBM gestaltet hat, das bremst. Und zwar erheblich.
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: pedsola am 02.05.11 - 13:44:47
@Batped
Das Skript läuft ja lokal. Oder kann ich da auch den Wert einstellen ?

jep, probiers einfach aus, dann ist die ganze Diskussion vorbei.
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: Peter Klett am 02.05.11 - 14:13:31
Auf die 40.000 komme ich, weil Du geschrieben hast, dass Du 1. bis zu 20.000 Elemente hast und 2. Deine Listenelemente von einer Klasse sind, die beim "New" zwei Dokumente als Parameter übergeben bekommen. 2 x 20.000 = 40.000 (so meine vielleicht etwas naive Rechenmethode).

Wenn ich massenhaft Daten von Dokumenten im Speicher halten muss (ich mache das auch mit Listen, ist mein Lieblingskonstrukt in Script), nehme ich Dokumente nur, wenn es nicht anders geht. Meist beschränkt sich das ganze ja auf ein paar Felder pro Dokument. Dann deklariere ich einen eigenen Datentyp

Type meinDatentyp
   Datum1 As ...
   Datum2 As ...
   Datum3 As ...
End Type

und definiere darüber die Liste

Dim meineListe List As MeinDatentyp

Der Zugriff erfolgt dann genauso, als wenn es ein Dokument wäre (evtl. ohne (0), wenn die einzelnen Daten z.B. als String deklariert sind).

rein:
meineListe ("Test").Datum1 = "1"
meineListe ("Test").Datum2 = "2"
meineListe ("Test").Datum3 = "3"

raus:
return = meineListe ("Test").Datum1

Im Ergebnis habe ich die gleichen Daten im Speicher, muss beim Schreiben in den Speicher zwar etwas mehr tun als nur Set meineDokumente ("Test") = doc, verbrauche aber wesentlich weniger Platz. Ist vielleicht nicht wirklich die Ursache Deines Problems, es kann aber nie schaden, auch mit den scheinbar unendlich vorhandenen Ressourcen heutiger Rechner etwas sparsamer umzugehen.

Gespannt bin ich auf das Ergebnis Deines Versuches mit FullTrimFix ...
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: rabdos am 02.05.11 - 14:37:13
so komme gerade aus meinem Meeting. Skript war nach 80 Minuten bei 39% und die Speicherauslastung war bei 1,6GB. Also keine wirkliche Veränderung.

@Peter
Dieses Abrechnungsskript ist schon nen paar Jahre alt und funktioniert einwandfrei. Mit der einen Stunde Laufzeit konnte ich immer Leben. Nur mit viel mehr halt nicht. Daher habe ich noch nicht das Bedürfnis gehabt, hier viele Veränderungen vorzunehmen. Immer nur ein paar Erweiterungen halt.
In vielen anderen Skripten die ich so baue, nehme ich auch die Deklaration von eigenen Datentypen vor. Dieses Skript müsste ich halt komplett neu schreiben und das ist schon extrem aufwändig. Wenns nicht anders zu lösen ist, mache ich das auch. Aber ich hoffe das bringt dann auch etwas...wer weiss

Ich habe nu erst einmal den FullTrimFix=0 in die notes.ini eingetragen und das Skript neu gestartet. Das rauswerfen der Fortschrittsanzeige ist dann der nächste Punkt.

Das Problem tritt auch nur bei dieser grossen Anzahl auf. Ich habe noch einen weiteren Lauf für Sonstige Abrechnungen mit ca 1000 Dokumenten, der läuft annähernd so schnell wie vorher -.-

Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: rabdos am 03.05.11 - 07:52:03
Leider brachte sowohl die Aufnahme von FulltrimFix = 0 als auch das entfernen meiner Fortschrittsanzeige absolut keinen Performanceschub. Das Skript benötigt ziemlich genau 8 Stunden für den Durchlauf unter 8.5.2. Unter Notes 7 benötigt es nicht einmal mehr 1 Stunde. Gleiches Skript auf dem selben Arbeitsgerät...ich verstehe das nicht.
Leider habe ich noch keine Serial vom Teamstudio Profiler bekommen
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: pram am 03.05.11 - 08:57:21
hast du denn schon mal gesucht wo der Flaschenhals ist (Stichwort Teamstudio Profiler)

Könnte evtl das schuld sein:
http://www-10.lotus.com/ldd/r5fixlist.nsf/8ed1b46cfdba8957852570c90054623b/14a71cc8d7d547198525783000736f77?OpenDocument

Gruß
Roland
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: rabdos am 03.05.11 - 10:30:55
Ich nutze im Skript kein GetDocumentByKey.

Ich habe gerade die Serial und den Key für den Profiler bekommen und der ackert gerade meine DB durch.

Was mich an der ganzen Sache irritiert ist, dass das Skript mit der Zeit immer langsamer wird. Die ersten 10% laufen in 15 Minuten. Von 10-20% benötigt er dann 25 Minuten und von 90-100% fast 2 Stunden. Obwohl die ganze Zeit die gleichen Berechnungen innerhalb meiner Listen laufen. Genau dieses hat das Skript unter Notes 7 eben nicht. Da brauchen die Prozentsprünge immer die gleiche Laufzeit.
Deshalb dachte ich auch an ein Speicherauslastungsproblem. Aber laut Windows Task Manager braucht der nur minimal mehr mit der Zeit und bleibt auch unter 2GB.

Gruss
Torsten
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: koehlerbv am 03.05.11 - 11:36:45
Du verwendest aber nicht irgendwo ein Set NotesDocument = NotesView.GetNthDocument ?

Bernhard
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: Peter Klett am 03.05.11 - 11:41:22
Du verwendest aber nicht irgendwo ein Set NotesDocument = NotesView.GetNthDocument ?

Bernhard
Vermutlich nicht, denn das führte schon in älteren Versionen zu solchen Effekten (ich war ein Verfechter dieser Methode, bis ich Jahre später das Unheil erkannte)
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: eknori am 03.05.11 - 11:46:14
Zitat
Du verwendest aber nicht irgendwo ein Set NotesDocument = NotesView.GetNthDocument ?

Bernhard

Hatte zu diesem Thema auf dem letzten EntwicklerCamp parliert. Da sehe ich nun wirklich nicht das Problem.

Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: koehlerbv am 03.05.11 - 11:47:43
Vielleicht ist es mit v8 aber noch schlimmer geworden, Peter?
Ich halte schon die eine Stunde für 15.000 (IIRC) Dokumente für sehr lange.

Bernhard
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: rabdos am 03.05.11 - 13:13:43
So hole ich mir die Dokumente

Code
	Public Sub New(inView As NotesView, inLogFile As LogFile, profil As notesdocument)
		Set logFile = inLogFile	
		
		Dim Doc As NotesDocument
		Dim InstNr As String
		Set Doc = inView.GetFirstDocument()
		While Not (Doc Is Nothing)
			Set item = Doc.GetFirstItem( "$Conflict" )
			'Replizierkonflikte nicht bearbeiten
			If item Is Nothing Then
				
				InstNr = HolFeld(Doc, "KundenNr")
				
				If Iselement(Institute(InstNr)) Then
					Call Institute(InstNr).InsertLeitung(Doc, profil)
				Else
					Set Institute(InstNr) = New Institut(Doc, logFile, profil)
				End If
			End If
			
			Set Doc = inView.GetNextDocument(Doc)
		Wend
	End Sub

Allerdings wusste ich das mit dem GetNth nicht. Das nutzt ich sicherlich in dem einem oder andere Skript   ::)
Das werde ich mir dann einmal merken.
Ich habe den Profiler nun am Start und jetzt auch endlich verstanden wie der funktioniert. Bin gerade in den Tests und Analysen zugange.
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: pedsola am 03.05.11 - 13:25:33
nochmal kurz zum Verständnis.
Der Agent läuft lokal auf Deinem Notes Client und schreibt dann lokal 6 Dateien raus, richtig ?
Oder läuft da doch irgendwas auf dem Server und wird mit runonserver getriggert ?
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: atbits am 03.05.11 - 13:34:23
Schalte mal inView.AutoUpdate = False

Sonst wird ständig der View Index aktualisiert ...

Wenn Du das benötigst würde ich das alle 1000 Dokumente oder so per Script machen.

inView.refresh

Aber vermutlich wirds nicht gebraucht
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: marschul am 03.05.11 - 13:35:33
Sind die Dokumente groß?
Ich hatte nämlich mal ein Problem mit nur sehr wenigen Dokumenten, die waren aber riesig, weil die Anwender Bilder per Copy & Paste und anschließender Skalierung (verkleinern) in die Body-Felder gepackt hatten. Das ist so ziemlich das Uneffektivste, was man machen kann, durfte den Anwendern aber (weil zu kompliziert) nicht abgewöhnt werden (besser wäre Bild vorher auf vernünftige Größe für Bildschirmanzeige runterrechnen und anschließend über Datei \ Importieren in das Feld laden, dann wird's nativ im Richtext abgelegt und das Dok bleibt relativ klein).
Ergebnis war, dass ein Agent, der über alle Dokumente rannte, extrem lange brauchte, weil zum Auslesen von ein paar Feldinhalten (nicht die Richtexte) die Dokumente über die Methode set doc = view.getnextdocument komplett in den Speicher geladen werden.
Lösung:
Habe die relevanten Felder in Spalten einer Suchansicht gepackt und bin über die NotesViewEntries gegangen, d.h. Werte direkt aus dem Ansichtsindex auslesen. Zeitersparnis: Faktor > 100.
Das sollte sich auch auf die hier gezeigte Methode anwenden lassen, es sei denn, die Bremse liegt in der Klasse Institute und den Methoden InsertLeitung bzw. New .
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: rabdos am 03.05.11 - 13:37:27
Ganz genau @Batped

Ich führe das Skript immer in einer Kopie der Datenbank aus, zwecks Sicherheitskopie und Abrechnungen die einmalig stattfinden. Es werden 6 Textdateien geschrieben und 1 Excel Datei.
Aber das schreiben der Dateien findet erst ganz am Ende nach 100% Durchlauf statt. Das zusammenbauen dauert nur nen paar Minuten.
Vorher generiere ich halt die Listen aus denen ich dann die Dateien fülle. Und dieses dauert nun ca 8mal so lang wie unter Notes 7.

@marschul
Es gibt keinen Anhang und die Dokumente sind max 4.000 Byte gross
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: eknori am 03.05.11 - 13:47:16
Zitat
Schalte mal inView.AutoUpdate = False

Sonst wird ständig der View Index aktualisiert ...

Hat absolut keinen Einfluss auf die Performance; ist lediglich für die NAVIGATION interessant.
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: atbits am 03.05.11 - 13:56:12
@eknori: Bist Du sicher? Ich weiß, dass Deine Tests beim Entwicklercamp das ergeben haben.

Aber: Wie hast Du das getestet? Testserver mit nur dieser Test-DB?
Ich meine auf einem Server unter Last hier schon Unterschiede gehabt zu haben (könnte aber auch mit VirtualDocuments von LEI  + http-Task zu tun gehabt haben).

Wartet LotusScript beim view.getNextDocument nicht darauf, dass der ViewIndex ggf. geupdatet wurde? Falls ja, dann hat es schon einen Impact, denn auf einem Server unter Last flutscht der Update des Viewindex ja nicht mal schnell so durch (zumindest, wenn die View ein paar Dokumente hat).

Ich lasse mich aber gerne eines besseren belehren ...
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: eknori am 03.05.11 - 14:11:48
Ich kenne es nur beim GetNextDocument in der ViewNavigator Class.
Wenn du Dokumente in der View BEARBEITEST und dann speicherst, wird der Index beim Fehlen des Eintrags aktualisiert und das kann dann zur Folge haben, das das NextDocument nicht mehr das next Document ist.
Auf die Performance hat das meines Wissens keinen nennenswerten Eindruck, was ja auch die Test gezeigt haben.
Die habe ich sowohl auf meinem Testserver als auch in einer Umgebung unter Last ausgeführt. In letzterer sind die Laufzeiten dann aber über alle Tests verständlicherweise länger.
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: atbits am 03.05.11 - 14:18:12
Klar, gilt nur wenn man selbst oder jemand anderes die Dokumente bearbeitet - Ok sehe schon, das passiert hier nicht, da hast Du Recht ...

Wie auch immer, ich nehme das jetzt mal als neue Erkenntnis mit und werde es beim nächsten mal mit AutoUpdate machen (ich bin gespannt)

Danke - man lernt nie aus!
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: pedsola am 03.05.11 - 15:54:23
kannst Du das Script denn auch testweise mal auf einem Domino Server laufen lassen mit und ohne FullTrimFix=0 ?
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: rabdos am 04.05.11 - 11:23:35
Ich hab leider mit der Domino Administration nichts am Hut. Daher kann ich serverseitig keine Einstellungen vornehmen.

Ich bin auf jeden Fall immer noch mit dem Profiler am testen. Mit 5000 Dokumenten auch kein Problem, habe auch hier und da schon an der Optimierungsschraube gedreht. Warum hier kein Performanceproblem unter Notes 7 vorliegt weiss ich allerdings nicht. Denn die Anzahl der Abfragen sind die gleichen. Auf einer Kiste unter beiden Version gestartet ist Notes 7 einfach viel viel schneller.
Jetzt habe ich aber das Problem, dass der Profiler wohl selbst Ärger macht bei der Anzahl der Dokumente und der Abfragen und mir zwischendurch mit Fehlermeldung aussteigt.

So wies aussieht werde ich wohl alles ein bisserl überarbeiten müssen. Nur in welche Richtung ich das programmieren soll, weiss ich noch nicht. Ich denke ich werde nen paar Type Definitionen erfinden müssen...
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: rabdos am 04.05.11 - 14:32:18
Interessanterweise habe ich das Skript nun so extrem überarbeitet, dass es unter Notes 7 nach 10min Durchlauf fertig ist. Notes 8 benötigt ca 80 Minuten. Anscheinend ist Notes 8 einfach so langsam bei meinen Skripten.
Der Profiler stürzt mir leider mit eine VB Fehlermeldung der nlnotes.exe nach 75% Durchlauf ab. Da habe ich keinen Plan warum.

So kann ich erst einmal wieder damit Leben, auch wenn es ein Unding mit der Laufzeit ist.

Danke euch für eure Mühen
Titel: Re: Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
Beitrag von: koehlerbv am 04.05.11 - 15:28:32
Dass R8 prinzipiell langsamer ist, kann ich nicht bestätigen - und bin da sicherlich nicht der einzige.
Ich würde hier auf jeden Fall noch tiefer graben - Du musst ja auf irgend etwas gestossen sein, was in R8 eben doch erheblich langsamer abläuft. Und das würde hier noch etliche mehr interessieren - deren Dank Dir dann lange nachschleichen würde  :)

Vorschlag: Log doch in Deinem Code, wann welcher Teil startet. An Hand der geloggten Zeitwerte erkennst Du ja, wo was lahmer läuft als mit dem 7er Client.

Bernhard