]> git.pond.sub.org Git - eow/blobdiff - static/dojo-release-1.1.1/dojox/string/tests/BuilderPerf.html
Replace Dojo with jQuery
[eow] / static / dojo-release-1.1.1 / dojox / string / tests / BuilderPerf.html
diff --git a/static/dojo-release-1.1.1/dojox/string/tests/BuilderPerf.html b/static/dojo-release-1.1.1/dojox/string/tests/BuilderPerf.html
deleted file mode 100644 (file)
index 4280caa..0000000
+++ /dev/null
@@ -1,403 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
-  "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-  <head>
-    <title>Builder Perf Tests</title>
-    <script type="text/javascript" src="../../../dojo/dojo.js"></script>
-    <script type="text/javascript" src="../Builder.js"></script>
-    <script type="text/javascript" src="lipsum.js"></script>
-    <script type="text/javascript">
-
-    dojo.addOnLoad(function(){
-      dojo.byId("run").disabled="";
-      dojo.connect(dojo.byId("run"), 
-                   "onclick", 
-                   function(evt) { 
-                     setTimeout(function() { 
-                       var words = parseInt(dojo.byId("numWords").value) || 10;
-                       var iters = parseInt(dojo.byId("numIters").value) || 1000;
-                       var dict = eval(dojo.byId("dict").value);
-                       buildAndRunSet(words, dict, iters); 
-                      }, 0); 
-                    });
-    });
-    
-    function element(tag, textOrChildOrArray) {
-      var e = document.createElement(tag);
-      function append(n) {
-        if(dojo.isString(n)){
-          n = document.createTextNode(n);
-        } 
-        e.appendChild(n);
-      }
-      if(dojo.isArray(textOrChildOrArray)) {
-        dojo.forEach(textOrChildOrArray, append);
-      }else{
-        append(textOrChildOrArray);
-      }
-      return e;
-    }
-    
-    function log(t) {
-      dojo.byId("mess").innerHTML = t;
-      console.log(t);
-    }
-    
-    function reportRun(results){
-      var runs = results.runs
-      var report = element("dl",
-                     element("dt", 
-                             "Run with " + results.words + " words, " + 
-                                           results.iterations + " iterations, for loop overhead of " + 
-                                           results.overhead + ", average phrase of " +
-                                           results.wordSize + " characters"));
-                          
-      runs.sort(function(a,b) { return a.time - b.time; });
-      dojo.forEach(runs, function(r) {
-        report.appendChild(element("dd", r.time + " - " + r.name));
-      });
-      
-      dojo.body().appendChild(report);
-    }
-    
-    function runTest(test, iterations, expected) {
-      var i;
-      if(expected != test()) throw new Error("Test failed expecting " + expected + ", got " + test());
-      var start = new Date().getTime(), end;
-      for(i=0; i < iterations; i++){
-        test();
-      }
-      end = new Date().getTime();
-      return end-start;
-    }
-    
-    function runSet(set, iterations){
-      
-      function averagePhraseLen(words) {
-        var sizes = dojo.map(words, function(w) { return w.length; });
-        var total = 0;
-        dojo.forEach(sizes, function(s) { total += s; });
-        return total / sizes.length;
-      }
-      
-      var tests = set.tests.concat(); //copy tests
-      var resultSet = {};
-      resultSet.words = set.words.length;
-      resultSet.overhead = runTest(set.overhead, iterations);
-      resultSet.iterations = iterations;
-      resultSet.wordSize = averagePhraseLen(set.words);
-      var runs = [];
-      
-      function _run() {
-        var t = tests.pop();
-        try {
-          log("Running " + t.name);
-          if(t) runs.push({ name: t.name, time: runTest(t.test, iterations, set.expected)});
-        } catch(e) {
-          console.error("Error running " + t.name);
-          console.error(e);
-        }
-        if(tests.length > 0) {
-          setTimeout(_run, 0);
-        }
-        else {
-          log("Done!");
-          resultSet.runs = runs;
-          reportRun(resultSet);
-          dojo.publish("perf/run/done");
-        }
-      }
-      setTimeout(_run, 25);
-    }
-    
-    function buildTestSet(numWords, dict) {
-      var words = [], i, dl = dict.length;
-      for(i = numWords; i > 0; i-=dl) { 
-        if(i >= dl) { words = words.concat(dict); }
-        else { words = words.concat(dict.slice(-i)); } 
-      }
-      if(words.length != numWords) throw new Error("wrong number of words, got " + words.length + ", expected " + numWords);
-      
-      var expected = words.join("");
-      
-      var _builder = new dojox.string.Builder();
-      
-      return { 
-        tests: [
-          {
-            name: "concatFor",
-            test: function() {
-              var s = "";
-              for(var i = 0; i < words.length; i++) {
-                s = s.concat(words[i]);
-              }
-              return s;
-            }
-          },
-          /*
-          {
-            name: "concatForAlias",
-            test: function() {
-              var s = "", w = words, l = w.length;
-              for(var i = 0; i < l; i++) {
-                s = s.concat(w[i]);
-              }
-              return s;
-            }
-          },
-          {
-            name: "concatForEach",
-            test: function() {
-              var s = "";
-              dojo.forEach(words, function(w) {
-                s = s.concat(w);
-              });
-              return s;
-            }
-          },
-          */
-          {
-            name: "concatOnce",
-            test: function() {
-              var s = "";
-              s = String.prototype.concat.apply(s, words);
-              return s;
-            }
-          },
-          {
-            name: "builderFor",
-            test: function() {
-              var b = new dojox.string.Builder();
-              for(var i = 0; i < words.length; i++) {
-                b.append(words[i]);
-              }
-              return b.toString();
-            }
-          },
-          /*
-          {
-            name: "builderForEach",
-            test: function() {
-              var b = new dojox.string.Builder();
-              dojo.forEach(words, function(w) {
-                b.append(w);
-              });
-              return b.toString();
-            }
-          },
-          */
-          {
-            name: "builderReusedFor",
-            test: function() {
-              _builder.clear();
-              for(var i = 0; i < words.length; i++) {
-                _builder.append(words[i]);
-              }
-              return _builder.toString();
-            }
-          },
-          {
-            name: "builderOnce",
-            test: function() {
-              var b = new dojox.string.Builder();
-              b.appendArray(words);
-              return b.toString();
-            }
-          },
-          {
-            name: "builderReusedOnce",
-            test: function() {
-              _builder.clear();
-              _builder.appendArray(words);
-              return _builder.toString();
-            }
-          },
-          {
-            name: "plusFor",
-            test: function() {
-              var s = "";
-              for(var i = 0; i < words.length; i++) {
-                s += words[i];
-              }
-              return s;
-            }
-          },
-          /*
-          {
-            name: "plusForAlias",
-            test: function() {
-              var s = "", w = words, l = w.length;
-              for(var i = 0; i < l; i++) {
-                s += w[i];
-              }
-              return s;
-            }
-          },
-          {
-            name: "plusForEach",
-            test: function() {
-              var s = "";
-              dojo.forEach(words, function(w) { s += w; });
-              return s;
-            }
-          },*/
-          {
-            name: "joinOnce",
-            test: function() {
-              return words.join("");
-            }
-          },
-          {
-            name: "joinFor",
-            test: function() {
-              var a = [];
-              for(var i = 0; i < words.length; i++) {
-                a.push(words[i]);
-              }
-              return a.join("");
-            }
-          }/*,
-          {
-            name: "joinForAlias",
-            test: function() {
-              var a = [], w = words, l = w.length;
-              for(var i = 0; i <l; i++) {
-                a.push(w[i]);
-              }
-              return a.join("");
-            }
-          },
-          {
-            name: "joinForEach",
-            test: function() {
-              var a = [];
-              dojo.forEach(words, function(w) { a.push(w); });
-              return a.join("");
-            }
-          }
-          */
-        ],
-        words: words,
-        expected: expected,
-        overhead: function() { 
-          var w = words; 
-          var l = w.length; 
-          for(var i=0; i < l; i++) { 
-            ident(w[i]); 
-          } 
-        }
-      };
-    }
-    
-    function buildAndRunSet(words, dict, times) {
-      runSet(buildTestSet(words, dict), times);
-    }
-    
-    function runSuite() {
-      var suite = [
-        {
-          words: 2,
-          times: 10000
-        },
-        {
-          words: 4,
-          times: 10000
-        },
-        {
-          words: 8,
-          times: 10000
-        },
-        {
-          words: 16,
-          times: 10000
-        },
-        {
-          words: 32,
-          times: 10000
-        },
-        {
-          words: 64,
-          times: 10000
-        },
-        {
-          words: 128,
-          times: 1000
-        },
-        {
-          words: 256,
-          times: 1000
-        },
-        {
-          words: 512,
-          times: 1000
-        },
-        {
-          words: 1024,
-          times: 1000
-        },
-        {
-          words: 2048,
-          times: 1000
-        },
-        {
-          words: 4096,
-          times: 100
-        },
-        {
-          words: 8192,
-          times: 100
-        }
-      ];
-      
-      var totalSuite = dojo.map(suite, function(s) { var n = {}; dojo.mixin(n,s); n.dict = lipsum; return n; });
-      totalSuite = totalSuite.concat(dojo.map(suite, function(s) { var n = {}; dojo.mixin(n,s); n.dict = lipsumLong; return n; }));
-      console.log(totalSuite);
-      
-      var handle = dojo.subscribe("perf/run/done", _run);
-      dojo.subscribe("perf/run/done", function(){ console.log("perf run done"); });
-      
-      function _run() {
-        var t = totalSuite.shift();
-        if(t) buildAndRunSet(t.words, t.dict, t.times);
-        if(totalSuite.length == 0) dojo.unsubscribe(handle);
-      }
-      
-      _run();
-    }
-    
-    function ident(i) { return i; }
-    </script>
-    <style type="text/css">
-    html { 
-      font-family: Lucida Grande, Tahoma;
-    }
-    div { margin-bottom: 1em; }
-    #results {
-      border: 1px solid #999;
-      border-collapse: collapse;
-    }
-    #results caption {
-      font-size: medium;
-      font-weight: bold;
-    }
-    #results td, #results th {
-      text-align: right;
-      width: 10em;
-      font-size: small;
-      white-space: nowrap;
-    }
-    #wordsCol { background: yellow; }
-    td.max { color: red; font-weight: bold; }
-    td.min { color: green; font-weight: bold; }
-    </style>
-  </head>
-  <body>
-    <table>
-      <tr><td><label for="numWords">Words</label></td><td><input type="text" id="numWords" value="100"/></td></tr>
-      <tr><td><label for="numIters">Iterations</label></td><td><input type="text" id="numIters" value="1000"/></td></tr>
-      <tr><td><label for="dict">Dictionary</label></td><td><input type="text" id="dict" value="lipsum"></td></tr>
-      <tr><td></td><td><button id="run" disabled>Run Tests!</button></td></tr>
-    </table>
-    <div id="mess"></div>    
-  </body>
-</html>