Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: masseur81 am 06.08.08 - 08:26:33

Titel: Performance: Erstes Öffnen eines Formulars dauert sehr lange???
Beitrag von: masseur81 am 06.08.08 - 08:26:33
Hallo,

ich habe ein Problem mit einem eigenen Formular. Wenn ein Nutzer ein Dokument damit öffnet, dann arbeitet Notes (8.0.1-Eclipse) ein paar Sekunden, danach öffnet sich das Dokument. Beim zweiten Öffnen eines (anderen) Dokumentes geht es dann schneller.

Jetzt hab ich versucht, das einzugrenzen, und habe herausgefunden:
 - Das ausgeführte Lotusscript ist schnell.
 - Irgendwelche Abfragen über Formelsprache in der Oberfläche laufen ebenfalls ohne Probleme.
Das Problem konnte ich in einer Subform lokalisieren. Die Subform beinhaltet mehrere Actions in einer Action Bar. Diese sind aber nur im EDIT-Modus sichtbar, also eigentlich nicht beim Öffnen. Wenn ich diese Actions nun aus der Subform entferne, läuft es wieder schnell. Nur wenn ich die Actions drin habe, dauerts. Die Actions importieren keine Libraries, sondern sollen nur Textfragmente in ein Textfeld einfügen.

Was wisst ihr darüber? Woran liegt das Problem allgemein? Gibt es da "Performancefresser", die man besser nicht verwenden sollte?
Gibt es für mich eine Möglichzeit zu analysieren, anstelle auszuprobieren? Immer etwas ändern und den Notes-Client neu zu starten ist ziemlich aufwändig. Also gibt es eine Art Profiling Tool für den Notes Client?
Titel: Re: Performance: Erstes Öffnen eines Formulars dauert sehr lange???
Beitrag von: masseur81 am 06.08.08 - 08:44:39
Habe weitere Infos: Ein Button bindet eine Script Library ein, welche wiederum

Uselsx "*javacon"

verwendet. Könnte es deshalb so langsam sein? Wenn ja, wie kann ich das umgehen? Ist es möglich, diese Java-Einbettung erst bei Gebrauch zu laden? Es steckt da nämlich ein nettes Feature dahinter, welches aber nicht immer und v.a. nicht beim Öffnen des Dokumentes benötigt wird.
Titel: Re: Performance: Erstes Öffnen eines Formulars dauert sehr lange???
Beitrag von: thomson666 am 06.08.08 - 09:31:43
du kannst in deiner INI

Client_Clock = 1
Console_Log_Enabled = 1

eintragen. Dann wird beim starten des Clients eine MS-Dos Box mitgestartet, in der du siehst wie lange er für bestimmte Design ID´s  bzw. die Befehle die ausgeführt werden braucht.
Titel: Re: Performance: Erstes Öffnen eines Formulars dauert sehr lange???
Beitrag von: DocNotes am 06.08.08 - 10:39:00
Versuch mal folgenden Trick:

Öffnen der Subform
in den (Globals) das Event "Initialize" öffnen
in der Sub Initialize eine Zeile Print "" einfügen

Code
Sub Initialize
	Print ""
End Sub

Quelle:
http://www-10.lotus.com/ldd/nd6forum.nsf/55c38d716d632d9b8525689b005ba1c0/d24e29cb77b5671c8525702e0049d280?OpenDocument

Gruß,
Markus
Titel: Re: Performance: Erstes Öffnen eines Formulars dauert sehr lange???
Beitrag von: it898ur am 06.08.08 - 10:46:25
Um das sofortige Laden der Scripte in den Aktionen zur verhindern, kann man diese Scripte auch in Agenten auslagern und in den Aktionen diese dann mit @Command([ToolsRunMacro]) aufrufen. Funktioniert allerdings nicht bei der Nutzung globaler Variablen.

Gruß

André
Titel: Re: Performance: Erstes Öffnen eines Formulars dauert sehr lange???
Beitrag von: masseur81 am 07.08.08 - 08:26:33
Danke für die Tipps, werde mal fleißig probieren.
Titel: Re: Performance: Erstes Öffnen eines Formulars dauert sehr lange???
Beitrag von: masseur81 am 07.08.08 - 10:42:30
Aaaaaaaaaaaaaaaaaaaallllso:
 - Logging war leider nicht erfolgreich, habe kaum was in der Konsole zum Sehen bekommen, auch nicht mit CONSOLE_DEBUG=1 zusätzlich
 - Der stupide Code in Initialize war hier nicht die Lösung, aber very interesting zu wissen.
 - Ich werde in der Script Library die Java-Importe in einen Agenten auslagern. Das ist denk ich das beste und zentralste, und sollte in allen Subforms, die die ScriptLibrary nutzen, Abhilfe bringen.

Danke schonmal.
Titel: Re: Performance: Erstes Öffnen eines Formulars dauert sehr lange???
Beitrag von: Ralf_M_Petter am 07.08.08 - 13:54:49
Also unter Notes<8 wäre es leicht erklärt, die Verzögerung entsteht durch das starten der Javaumgebung. Ist übrigens das gleiche wie wenn du in Notes 7.0.x das erste mal  am Tag die Rechtschreibkorrektur verwendest. Aber in Notes 8 dachte ich dass es dieses Problem nicht mehr gibt, da die JVM ja schon von Anfang an gestartet ist. Ausser für LS2J ist aus unerklärlichen Gründen eine eigene JVM notwendig. Dann hast du erstmal nicht viel Chance. Für was wird den LS2J in deiner Datenbank verwendet. Eventuell kan man es mit Notes 8 Mitteln eleganter machen.

Grüße

Ralf