]> source.dussan.org Git - gwtquery.git/commitdiff
adding a couple of selectors to benchmark module which were missing, and showing...
authorManolo Carrasco <manolo@apache.org>
Sun, 8 Aug 2010 07:39:00 +0000 (07:39 +0000)
committerManolo Carrasco <manolo@apache.org>
Sun, 8 Aug 2010 07:39:00 +0000 (07:39 +0000)
gwtquery-core/src/main/java/com/google/gwt/query/client/SelectorEngine.java
gwtquery-core/src/main/java/com/google/gwt/query/client/Selectors.java
samples/src/main/java/gwtquery/samples/client/GwtQueryBenchModule.java
samples/src/main/java/gwtquery/samples/public/GwtQueryBench.html

index ba57f0c83de2f9933527fa0b1e1e6ec9e09a7f2a..45646d7609c71fc9f08cfb5fe1b0b8782cf8bc95 100644 (file)
@@ -82,7 +82,6 @@ public class SelectorEngine {
 \r
   public SelectorEngine() {\r
     impl = (SelectorEngineImpl) GWT.create(SelectorEngineImpl.class);\r
-    // System.out.println("SelectorEngineImpl used: " + impl.getClass().getName());\r
   }\r
 \r
   public Node getRoot() {\r
@@ -109,4 +108,12 @@ public class SelectorEngine {
     }\r
   }\r
   \r
+  public String getName() {\r
+    return getClass().getName().replaceAll("^.*\\.", "");\r
+  }\r
+  \r
+  public boolean isDegradated() {\r
+    return degradate;\r
+  }\r
+  \r
 }\r
index 2118668aace20c43045d1538fe6149bc39aa901a..5da636c6ea2a898a29de0ed4d0e43f2f71595195 100644 (file)
@@ -27,4 +27,6 @@ public interface Selectors {
   public void setRoot(Node node);\r
   \r
   public Node getRoot();\r
+  \r
+  public boolean isDegradated();\r
 }\r
index a3d180ec521050a072f9c435d283d517643cb777..99ff78c4f7b4728fd1b0b039be6f88fa0d56a126 100644 (file)
@@ -11,10 +11,11 @@ import com.google.gwt.dom.client.Element;
 import com.google.gwt.query.client.DeferredGQuery;\r
 import com.google.gwt.query.client.Function;\r
 import com.google.gwt.query.client.GQuery;\r
-import com.google.gwt.query.client.SelectorEngine;\r
 import com.google.gwt.query.client.impl.SelectorEngineCssToXPath;\r
 import com.google.gwt.query.client.impl.SelectorEngineImpl;\r
 import com.google.gwt.query.client.impl.SelectorEngineJS;\r
+import com.google.gwt.query.client.impl.SelectorEngineNative;\r
+import com.google.gwt.query.client.impl.SelectorEngineNativeIE8;\r
 import com.google.gwt.query.client.impl.SelectorEngineSizzle;\r
 import com.google.gwt.query.client.impl.SelectorEngineSizzleGwt;\r
 import com.google.gwt.query.client.impl.SelectorEngineXPath;\r
@@ -52,31 +53,17 @@ public class GwtQueryBenchModule implements EntryPoint {
 \r
   public interface Benchmark {\r
     String getId();\r
-    int runSelector(DeferredGQuery dq, String selector);\r
+    String getName();\r
+    int runSelector(DeferredGQuery dq);\r
   }\r
   \r
-  /**\r
-   * Benchmark for the default dynamic selector implementation \r
-   */\r
-  private class DynamicBenchmark extends GQueryDynamicBenchmark {\r
-    private SelectorEngineImpl engine;\r
-\r
-    DynamicBenchmark(SelectorEngineImpl engine, String name) {\r
-      super(name);\r
-      this.engine = engine;\r
-    }\r
-\r
-    public int runSelector(DeferredGQuery dq, String selector) {\r
-      return engine.select(selector, gwtiframe).getLength();\r
-    }\r
-  }\r
-\r
   /**\r
    * Benchmark for the compiled selectors\r
    */\r
   private class GQueryCompiledBenchmark implements Benchmark {\r
     \r
     String id;\r
+    String name;\r
     \r
     GQueryCompiledBenchmark(String id) {\r
       this.id = id;\r
@@ -86,30 +73,47 @@ public class GwtQueryBenchModule implements EntryPoint {
       return id;\r
     }\r
 \r
-    public int runSelector(DeferredGQuery dq, String selector) {\r
+    public int runSelector(DeferredGQuery dq) {\r
       return dq.array(gwtiframe).getLength();\r
     }\r
+\r
+    public String getName() {\r
+      if (name == null) {\r
+        MySelectors s = GWT.create(MySelectors.class);\r
+        s.body(document);\r
+        name = s.getClass().getName().replaceAll("^.*_", "");\r
+        if (s.isDegradated()) {\r
+          name += " [degradated]";\r
+        }\r
+      }\r
+      return name;\r
+    }\r
   }\r
 \r
   /**\r
-   * Benchmark for other dynamic selectors\r
+   * Benchmark for dynamic selectors\r
    */\r
-  private class GQueryDynamicBenchmark implements Benchmark {\r
+  private class DynamicBenchmark implements Benchmark {\r
 \r
-    private SelectorEngine engine;\r
+    protected SelectorEngineImpl engine;\r
     private String id;\r
 \r
-    GQueryDynamicBenchmark(String name) {\r
+    DynamicBenchmark(SelectorEngineImpl engine, String name) {\r
       this.id = name;\r
-      this.engine = new SelectorEngine();\r
+      this.engine = engine;\r
     }\r
 \r
     public String getId() {\r
       return id;\r
     }\r
 \r
-    public int runSelector(DeferredGQuery dq, String selector) {\r
-      return engine.select(selector, gwtiframe).getLength();\r
+    public int runSelector(DeferredGQuery dq) {\r
+      return engine.select(dq.getSelector(), gwtiframe).getLength();\r
+    }\r
+\r
+    public String getName() {\r
+      String name = engine.getClass().getName().replaceAll("^.*\\.", "");\r
+      return name;\r
     }\r
   }\r
 \r
@@ -127,13 +131,17 @@ public class GwtQueryBenchModule implements EntryPoint {
       return id;\r
     }\r
 \r
-    public int runSelector(DeferredGQuery dq, String selector) {\r
-      return runSelector(dq, id, selector);\r
+    public int runSelector(DeferredGQuery dq) {\r
+      return runSelector(id, dq.getSelector());\r
     }\r
 \r
-    public native int runSelector(DeferredGQuery dq, String id, String selector) /*-{\r
+    public native int runSelector(String id, String selector) /*-{\r
       return eval("$wnd." + id + "benchmark('" + selector + "')");\r
     }-*/;\r
+\r
+    public String getName() {\r
+      return id;\r
+    }\r
   }\r
 \r
   private int min_time = 200;\r
@@ -149,12 +157,14 @@ public class GwtQueryBenchModule implements EntryPoint {
    */\r
   private final Benchmark[] benchmarks = new Benchmark[] {\r
       new GQueryCompiledBenchmark("gwt_compiled"), \r
-      new GQueryDynamicBenchmark("gwt_dynamic"),\r
+      new DynamicBenchmark((SelectorEngineImpl)GWT.create(SelectorEngineImpl.class), "gwt_dynamic"),\r
       new DynamicBenchmark(new SelectorEngineSizzle(), "gwt_sizzle_jsni"),\r
       new DynamicBenchmark(new SelectorEngineSizzleGwt(), "gwt_sizzle_java"),\r
       new DynamicBenchmark(new SelectorEngineJS(), "gwt_domassist_java"),\r
       new DynamicBenchmark(new SelectorEngineXPath(), "gwt_xpath"),\r
       new DynamicBenchmark(new SelectorEngineCssToXPath(), "gwt_css2xpath"),\r
+      new DynamicBenchmark(new SelectorEngineNative(), "gwt_native"),\r
+      new DynamicBenchmark(new SelectorEngineNativeIE8(), "gwt_nativeIE8"),\r
       new IframeBenchmark("jquery"),\r
       new IframeBenchmark("dojo"), \r
       new IframeBenchmark("prototype"),\r
@@ -241,12 +251,11 @@ public class GwtQueryBenchModule implements EntryPoint {
           int num = 0;\r
           long end = start;\r
           Benchmark m = selectedBenchmarks[benchMarkNumber];\r
-          String selector = d.getSelector();\r
           double runtime = min_time;\r
           int found = 0;\r
           try {\r
             do {\r
-              num += m.runSelector(d, selector);\r
+              num += m.runSelector(d);\r
               end = System.currentTimeMillis();\r
               numCalls++;\r
             } while (end - start < min_time);\r
@@ -279,7 +288,6 @@ public class GwtQueryBenchModule implements EntryPoint {
    */\r
   public void onModuleLoad() {\r
     \r
-    \r
     final MySelectors m = GWT.create(MySelectors.class);\r
     \r
     System.out.println(showCapabilities());\r
@@ -308,7 +316,6 @@ public class GwtQueryBenchModule implements EntryPoint {
       waitToLoad = Integer.parseInt(par);\r
     }\r
     \r
-    \r
     initSelects(benchmarks);\r
     initIFrames();\r
     $("#results").hide();\r
@@ -401,7 +408,7 @@ public class GwtQueryBenchModule implements EntryPoint {
           select = select.replaceAll("%SEL%", "checked='checked'");\r
         }\r
       }\r
-      g.append(select.replaceAll("%ID%", b.getId()).replaceAll("%SEL", ""));\r
+      g.append(select.replaceAll("%ID%", b.getId() + " " + b.getName()).replaceAll("%SEL", ""));\r
     }\r
     g.append("<br/><button id=run>Run</button>");\r
     $("#run").click(runBenchMarks);\r
@@ -463,7 +470,7 @@ public class GwtQueryBenchModule implements EntryPoint {
   private Benchmark[] readBenchmarkSelection() {\r
     ArrayList<Benchmark> bs = new ArrayList<Benchmark>();\r
     for (Element e : $("input", selectPanel.getElement()).elements()) {\r
-      String val = $(e).val();\r
+      String val = $(e).val().replaceAll(" .*$", "");\r
       if (!"".equals(val)) {\r
         for (Benchmark b : benchmarks) {\r
           if (b.getId().equals(val)) {\r
index f876b44c9f1f284b13e9331f4525fc09e839d3c3..50bd5a0c073b6a63785780a22023b2b48969c61d 100644 (file)
@@ -24,7 +24,7 @@
            color: black;\r
            background: #808080;\r
            border: 2px solid #936630;\r
-           width: 200px;\r
+           width: 500px;\r
         }\r
 \r
         body, select {\r