Univention Bugzilla – Bug 29647
Geschwindigkeits- und Speicheroptimierungen in UMC nötig (2)
Last modified: 2016-10-07 18:22:45 CEST
Die Optimierungsarbeiten sind noch nicht abgeschlossen. Ich habe einmal jedes Modul geöffnet wild herumgeklickt und wieder geschlossen. Ergebnis: Einstmals 185 Widgets, danach 300. Leider kann ich nicht mehr genau sagen, welches Widget wann nicht aufgeräumt wurde (nicht systematisch genug getestet). Aber folgender Verdacht: AD-Connektor-Konfigurations-Dialog, UDM-Report-Dialog (extrahiert aus Button-Texten etc). Überhaupt sind es vor allem die Dialoge, die nicht richtig aufgeräumt werden. Grund ist, dass viele so eine komische _cleanup-Funktion definieren. Die wird aber nur bei "Ok" oder "Cancel" ausgeführt. Nicht zum Beispiel beim Klick oben rechts auf das Kreuz. Sowas sollte man sowieso automatisch machen und nicht explizit in irgendwelchen Button-Callbacks. Ich empfehle so etwas (natürlich ein bisschen schicker): declare(OneWayDialog, [Dialog], { onHide: 'destryRecursive'}) Dann kann einem sowas nicht mehr passieren. Dialoge zu speichern lohnt sich nur ganz selten (z.B. das dialog.confirm-Singleton-Objekt). Außerdem: Viel könnte gespart werden, wenn es nur noch einen MasterTooltip gibt, der dann dynamisch immer dorthin wandert, wo er gebraucht wird. Momentan werden jede Menge Tooltips erzeugt. Dazu sollte man aber besser eine Bibliothek oder ähnliches suchen (kann mir kaum vorstellen, dass wir die einzigen mit dem Problem sind). Man sollte auch einmal mit dem Bündeln von udm/syntax/choices experimentieren. Das wird kompliziert, kann aber sicher einiges bewirken. Es gibt in UDM bereits ein UMCPBundle, vielleicht kann man da anknüpfen. +++ This bug was initially created as a clone of Bug #27432 +++ Unter WinXP mit IE8 erhalte ich öfters die Meldung "Die Anfrage konnte nicht ausgeführt werden", wenn ich die Detailseite eines Benutzers öffne. Dies kann mit den relativ vielen parallen Ajax-Abfragen zusammenhängen. Zusätzlich sei erwähnt, dass der Aufbau der Detailseite sehr langsam ist. Vielleicht gibt es noch Möglichkeiten dies zu optimieren.
Man sollte auch mal nach removeChild suchen. Denn das Kind, das entfernt wird, ist nicht mehr automatisch "geownt", d.h. man muss das Widget per Hand zerstören.
Way more better in UCS 4.0. During product tests every module was tested. No more memory leaks only in UVMM. Leaving this opened because of the dialog thing which is still an issue.
I guess this is fine otherweise the UCS 4.2 product tests should inform about new browser side memory leaks.