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
