]> source.dussan.org Git - vaadin-framework.git/commitdiff
added same rendering performance tests
authorMatti Tahvonen <matti.tahvonen@itmill.com>
Tue, 5 Aug 2008 08:25:27 +0000 (08:25 +0000)
committerMatti Tahvonen <matti.tahvonen@itmill.com>
Tue, 5 Aug 2008 08:25:27 +0000 (08:25 +0000)
svn changeset:5137/svn branch:trunk

src/com/itmill/toolkit/tests/PerformanceTestBasicComponentRendering.java [new file with mode: 0644]
src/com/itmill/toolkit/tests/PerformanceTestLabelsAndOrderedLayouts.java [new file with mode: 0644]

diff --git a/src/com/itmill/toolkit/tests/PerformanceTestBasicComponentRendering.java b/src/com/itmill/toolkit/tests/PerformanceTestBasicComponentRendering.java
new file mode 100644 (file)
index 0000000..6cf2804
--- /dev/null
@@ -0,0 +1,106 @@
+/* 
+@ITMillApache2LicenseForJavaFiles@
+ */
+
+package com.itmill.toolkit.tests;
+
+import java.util.Date;
+import java.util.Map;
+
+import com.itmill.toolkit.terminal.UserError;
+import com.itmill.toolkit.ui.Button;
+import com.itmill.toolkit.ui.ComboBox;
+import com.itmill.toolkit.ui.CustomComponent;
+import com.itmill.toolkit.ui.DateField;
+import com.itmill.toolkit.ui.Label;
+import com.itmill.toolkit.ui.OrderedLayout;
+import com.itmill.toolkit.ui.TabSheet;
+import com.itmill.toolkit.ui.Table;
+import com.itmill.toolkit.ui.TextField;
+
+public class PerformanceTestBasicComponentRendering extends CustomComponent {
+
+    private final OrderedLayout main;
+
+    private final OrderedLayout testContainer;
+
+    private Date startTime;
+
+    private final Label result;
+
+    private static final String DESCRIPTION = "Rendering lots of differend components to stress rendering performance. Visits server after render (due table cache row fetch) and prints client round trip time to a label. More exact render time can be checked from clients debug dialog.";
+
+    private static final int INITIAL_COMPONENTS = 10;
+
+    public PerformanceTestBasicComponentRendering() {
+
+        main = new OrderedLayout();
+        setCompositionRoot(main);
+        addInfo();
+
+        result = new Label();
+        main.addComponent(result);
+
+        testContainer = new OrderedLayout();
+
+        final Table t = TestForTablesInitialColumnWidthLogicRendering
+                .getTestTable(5, 200);
+
+        Table t2 = new Table("Test Table with 199 rows rendered initially") {
+            public void changeVariables(Object source, Map variables) {
+                super.changeVariables(source, variables);
+                // end timing on cache row request
+                endTest();
+            }
+        };
+        t2.setPageLength(199); // render almost all rows at once
+        t2.setContainerDataSource(t.getContainerDataSource());
+
+        testContainer.addComponent(t2);
+
+        for (int i = 0; i < INITIAL_COMPONENTS; i++) {
+            ComboBox cb = new ComboBox("Combobox " + i);
+            for (int j = 0; j < INITIAL_COMPONENTS; j++) {
+                cb.addItem("option " + i + " " + j);
+            }
+            testContainer.addComponent(cb);
+
+            TextField tf = new TextField("TextField " + i);
+            tf.setDescription("DESC SDKJSDF");
+            tf.setComponentError(new UserError("dsfjklsdf"));
+            testContainer.addComponent(tf);
+
+            testContainer.addComponent(new DateField("DateField" + i));
+
+            testContainer.addComponent(new Button("Button" + i));
+
+            TabSheet ts = new TabSheet();
+
+            for (int j = 0; j < INITIAL_COMPONENTS; j++) {
+                Label tab = new Label("Tab content " + i + " " + j);
+                tab.setCaption("Tab " + i + " " + j);
+                ts.addTab(tab);
+            }
+            testContainer.addComponent(ts);
+
+        }
+
+        main.addComponent(testContainer);
+        startTest();
+    }
+
+    public void startTest() {
+        startTime = new Date();
+    }
+
+    public void endTest() {
+        final long millis = (new Date()).getTime() - startTime.getTime();
+        final Float f = new Float(millis / 1000.0);
+        result.setValue("Test completed in " + f + " seconds");
+    }
+
+    private void addInfo() {
+        main.addComponent(new Label(DESCRIPTION, Label.CONTENT_XHTML));
+    }
+
+}
diff --git a/src/com/itmill/toolkit/tests/PerformanceTestLabelsAndOrderedLayouts.java b/src/com/itmill/toolkit/tests/PerformanceTestLabelsAndOrderedLayouts.java
new file mode 100644 (file)
index 0000000..5b133fb
--- /dev/null
@@ -0,0 +1,70 @@
+/* 
+@ITMillApache2LicenseForJavaFiles@
+ */
+
+package com.itmill.toolkit.tests;
+
+import java.util.Date;
+
+import com.itmill.toolkit.ui.Button;
+import com.itmill.toolkit.ui.CustomComponent;
+import com.itmill.toolkit.ui.Label;
+import com.itmill.toolkit.ui.OrderedLayout;
+import com.itmill.toolkit.ui.Button.ClickEvent;
+import com.itmill.toolkit.ui.Button.ClickListener;
+
+public class PerformanceTestLabelsAndOrderedLayouts extends CustomComponent {
+    private final OrderedLayout main;
+
+    private final OrderedLayout testContainer;
+
+    private Date startTime;
+
+    private final Label result;
+
+    private static final String DESCRIPTION = "Simple test that renders n labels into ordered layout.";
+
+    private static final int INITIAL_COMPONENTS = 1000;
+
+    public PerformanceTestLabelsAndOrderedLayouts() {
+        main = new OrderedLayout();
+        setCompositionRoot(main);
+        addInfo();
+
+        result = new Label();
+        main.addComponent(result);
+
+        main.addComponent(new Button("click when rendered",
+                new ClickListener() {
+
+                    public void buttonClick(ClickEvent event) {
+                        endTest();
+                    }
+                }));
+
+        testContainer = new OrderedLayout();
+
+        for (int i = 0; i < INITIAL_COMPONENTS; i++) {
+            Label l = new Label("foo" + i);
+            testContainer.addComponent(l);
+        }
+
+        main.addComponent(testContainer);
+        startTest();
+    }
+
+    public void startTest() {
+        startTime = new Date();
+    }
+
+    public void endTest() {
+        final long millis = (new Date()).getTime() - startTime.getTime();
+        final Float f = new Float(millis / 1000.0);
+        result.setValue("Test completed in " + f + " seconds");
+    }
+
+    private void addInfo() {
+        main.addComponent(new Label(DESCRIPTION, Label.CONTENT_XHTML));
+    }
+
+}