Alexander Wels has uploaded a new change for review.

Change subject: webadmin: GWT debug mode speedup.
......................................................................

webadmin: GWT debug mode speedup.

Debug mode would take around 4:30 to get from the login page to
the VM main tab when logging in. This is due to the proxy event
on UiCommonInitEvent in AbstractSubTabPresenter. This event would
fire and it would cause all sub classes of AbstractSubTabPresenter
to initialize and since the code was split, it would have to load
every single sub tab presenter everywhere at once. This took about
500ms-3000ms depending on the presenter. With around 200 sub tab
presenters, it would take a long long time.

This patch removes the proxy event and instead places the handler
initialization in the onBind of the presenter. This should have the
exact same effect as before (the handlers are initalized when the
presenter is activated vs when the application is initalized).

Change-Id: I8a5a038cbf7a6cfe8e462eab2e4f18c910c039cc
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1110788
Signed-off-by: Alexander Wels <[email protected]>
---
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/AbstractSubTabPresenter.java
M 
frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/gin/ClientModule.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ClientModule.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/cluster/SubTabClusterGeneralPresenter.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostGeneralPresenter.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostHardwarePresenter.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/virtualMachine/SubTabVirtualMachineGeneralPresenter.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/virtualMachine/SubTabVirtualMachineSnapshotPresenter.java
8 files changed, 20 insertions(+), 23 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/66/30866/1

diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/AbstractSubTabPresenter.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/AbstractSubTabPresenter.java
index 9ae2a29..08cdb81 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/AbstractSubTabPresenter.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/AbstractSubTabPresenter.java
@@ -6,6 +6,7 @@
 import org.ovirt.engine.ui.common.uicommon.model.DetailModelProvider;
 import org.ovirt.engine.ui.common.uicommon.model.SearchableDetailModelProvider;
 import org.ovirt.engine.ui.common.uicommon.model.UiCommonInitEvent;
+import 
org.ovirt.engine.ui.common.uicommon.model.UiCommonInitEvent.UiCommonInitHandler;
 import org.ovirt.engine.ui.common.widget.table.ActionTable;
 import org.ovirt.engine.ui.common.widget.table.HasActionTable;
 import org.ovirt.engine.ui.common.widget.table.OrderedMultiSelectionModel;
@@ -23,7 +24,6 @@
 import 
com.google.gwt.user.cellview.client.LoadingStateChangeEvent.LoadingState;
 import com.google.gwt.view.client.SelectionChangeEvent;
 import com.gwtplatform.mvp.client.View;
-import com.gwtplatform.mvp.client.annotations.ProxyEvent;
 import com.gwtplatform.mvp.client.proxy.PlaceManager;
 import com.gwtplatform.mvp.client.proxy.PlaceRequest;
 import com.gwtplatform.mvp.client.proxy.RevealContentHandler;
@@ -92,6 +92,14 @@
                 }
             }));
         }
+        registerHandler(addHandler(UiCommonInitEvent.getType(), new 
UiCommonInitHandler() {
+            @Override
+            public void onUiCommonInit(UiCommonInitEvent event) {
+                //Re-initialize handlers when UiCommonInit is called (new 
models need to re-attach handlers).
+                initializeHandlers();
+            }
+        }));
+        initializeHandlers();
     }
 
     /**
@@ -196,8 +204,7 @@
         }
     }
 
-    @ProxyEvent
-    public void onUiCommonInit(UiCommonInitEvent event) {
+    public void initializeHandlers() {
         // Notify view when the entity of the detail model changes
         modelProvider.getModel().getEntityChangedEvent().addListener(new 
IEventListener() {
             @Override
diff --git 
a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/gin/ClientModule.java
 
b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/gin/ClientModule.java
index 5de56be..bfd8c0a 100644
--- 
a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/gin/ClientModule.java
+++ 
b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/gin/ClientModule.java
@@ -10,8 +10,8 @@
     @Override
     protected void configure() {
         install(new SystemModule());
-        install(new PresenterModule());
         install(new UiCommonModule());
+        install(new PresenterModule());
         install(new UtilsModule());
     }
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ClientModule.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ClientModule.java
index 4980507..f98b69d 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ClientModule.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ClientModule.java
@@ -10,8 +10,8 @@
     @Override
     protected void configure() {
         install(new SystemModule());
-        install(new PresenterModule());
         install(new UiCommonModule());
+        install(new PresenterModule());
         install(new PluginModule());
         install(new UtilsModule());
     }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/cluster/SubTabClusterGeneralPresenter.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/cluster/SubTabClusterGeneralPresenter.java
index 3737cbc..38ebfa8 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/cluster/SubTabClusterGeneralPresenter.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/cluster/SubTabClusterGeneralPresenter.java
@@ -4,7 +4,6 @@
 import org.ovirt.engine.ui.common.place.PlaceRequestFactory;
 import org.ovirt.engine.ui.common.presenter.AbstractSubTabPresenter;
 import org.ovirt.engine.ui.common.uicommon.model.DetailModelProvider;
-import org.ovirt.engine.ui.common.uicommon.model.UiCommonInitEvent;
 import org.ovirt.engine.ui.common.widget.tab.ModelBoundTabData;
 import org.ovirt.engine.ui.uicommonweb.UICommand;
 import org.ovirt.engine.ui.uicommonweb.models.clusters.ClusterGeneralModel;
@@ -80,8 +79,8 @@
     }
 
     @Override
-    public void onUiCommonInit(UiCommonInitEvent event) {
-        super.onUiCommonInit(event);
+    public void initializeHandlers() {
+        super.initializeHandlers();
 
         // Initialize the list of alerts:
         final ClusterGeneralModel model = getModelProvider().getModel();
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostGeneralPresenter.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostGeneralPresenter.java
index cece1ad..9cbc19f 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostGeneralPresenter.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostGeneralPresenter.java
@@ -6,7 +6,6 @@
 import org.ovirt.engine.ui.common.place.PlaceRequestFactory;
 import org.ovirt.engine.ui.common.presenter.AbstractSubTabPresenter;
 import org.ovirt.engine.ui.common.uicommon.model.DetailModelProvider;
-import org.ovirt.engine.ui.common.uicommon.model.UiCommonInitEvent;
 import org.ovirt.engine.ui.common.widget.tab.ModelBoundTabData;
 import org.ovirt.engine.ui.uicommonweb.UICommand;
 import org.ovirt.engine.ui.uicommonweb.models.ApplicationModeHelper;
@@ -84,8 +83,8 @@
     }
 
     @Override
-    public void onUiCommonInit(UiCommonInitEvent event) {
-        super.onUiCommonInit(event);
+    public void initializeHandlers() {
+        super.initializeHandlers();
 
         // Initialize the list of alerts:
         final HostGeneralModel model = getModelProvider().getModel();
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostHardwarePresenter.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostHardwarePresenter.java
index 5882bc8..8501884 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostHardwarePresenter.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostHardwarePresenter.java
@@ -4,7 +4,6 @@
 import org.ovirt.engine.ui.common.place.PlaceRequestFactory;
 import org.ovirt.engine.ui.common.presenter.AbstractSubTabPresenter;
 import org.ovirt.engine.ui.common.uicommon.model.DetailModelProvider;
-import org.ovirt.engine.ui.common.uicommon.model.UiCommonInitEvent;
 import org.ovirt.engine.ui.common.widget.tab.ModelBoundTabData;
 import org.ovirt.engine.ui.uicommonweb.models.hosts.HostHardwareGeneralModel;
 import org.ovirt.engine.ui.uicommonweb.models.hosts.HostListModel;
@@ -44,11 +43,6 @@
             PlaceManager placeManager, DetailModelProvider<HostListModel, 
HostHardwareGeneralModel> modelProvider) {
         super(eventBus, view, proxy, placeManager, modelProvider,
                 HostSubTabPanelPresenter.TYPE_SetTabContent);
-    }
-
-    @Override
-    public void onUiCommonInit(UiCommonInitEvent event) {
-        super.onUiCommonInit(event);
     }
 
     @Override
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/virtualMachine/SubTabVirtualMachineGeneralPresenter.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/virtualMachine/SubTabVirtualMachineGeneralPresenter.java
index 9e4276b..450c04f 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/virtualMachine/SubTabVirtualMachineGeneralPresenter.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/virtualMachine/SubTabVirtualMachineGeneralPresenter.java
@@ -4,7 +4,6 @@
 import org.ovirt.engine.ui.common.place.PlaceRequestFactory;
 import org.ovirt.engine.ui.common.presenter.AbstractSubTabPresenter;
 import org.ovirt.engine.ui.common.uicommon.model.DetailModelProvider;
-import org.ovirt.engine.ui.common.uicommon.model.UiCommonInitEvent;
 import org.ovirt.engine.ui.common.widget.tab.ModelBoundTabData;
 import org.ovirt.engine.ui.uicommonweb.models.vms.VmGeneralModel;
 import org.ovirt.engine.ui.uicommonweb.models.vms.VmListModel;
@@ -67,8 +66,8 @@
     }
 
     @Override
-    public void onUiCommonInit(UiCommonInitEvent event) {
-        super.onUiCommonInit(event);
+    public void initializeHandlers() {
+        super.initializeHandlers();
 
         // Initialize the list of alerts:
         final VmGeneralModel model = getModelProvider().getModel();
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/virtualMachine/SubTabVirtualMachineSnapshotPresenter.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/virtualMachine/SubTabVirtualMachineSnapshotPresenter.java
index 064e2e9..aa946d4 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/virtualMachine/SubTabVirtualMachineSnapshotPresenter.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/virtualMachine/SubTabVirtualMachineSnapshotPresenter.java
@@ -5,7 +5,6 @@
 import org.ovirt.engine.ui.common.place.PlaceRequestFactory;
 import org.ovirt.engine.ui.common.presenter.AbstractSubTabPresenter;
 import org.ovirt.engine.ui.common.uicommon.model.SearchableDetailModelProvider;
-import org.ovirt.engine.ui.common.uicommon.model.UiCommonInitEvent;
 import org.ovirt.engine.ui.common.widget.tab.ModelBoundTabData;
 import org.ovirt.engine.ui.uicommonweb.models.vms.VmListModel;
 import org.ovirt.engine.ui.uicommonweb.models.vms.VmSnapshotListModel;
@@ -62,8 +61,8 @@
     }
 
     @Override
-    public void onUiCommonInit(UiCommonInitEvent event) {
-        super.onUiCommonInit(event);
+    public void initializeHandlers() {
+        super.initializeHandlers();
 
         getView().addModelListeners();
     }


-- 
To view, visit http://gerrit.ovirt.org/30866
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I8a5a038cbf7a6cfe8e462eab2e4f18c910c039cc
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.5
Gerrit-Owner: Alexander Wels <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to