You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by fi...@apache.org on 2013/02/05 00:56:46 UTC

spec commit: start of moving/rename for benchmarks

Updated Branches:
  refs/heads/master 80766b268 -> 66a4bd7f0
Updated Tags:  refs/tags/2.4.0 [created] 66a4bd7f0


start of moving/rename for benchmarks


Project: http://git-wip-us.apache.org/repos/asf/cordova-mobile-spec/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-mobile-spec/commit/66a4bd7f
Tree: http://git-wip-us.apache.org/repos/asf/cordova-mobile-spec/tree/66a4bd7f
Diff: http://git-wip-us.apache.org/repos/asf/cordova-mobile-spec/diff/66a4bd7f

Branch: refs/heads/master
Commit: 66a4bd7f070182d547de51bd6a409cb9798a3347
Parents: 80766b2
Author: Fil Maj <ma...@gmail.com>
Authored: Fri Feb 1 14:28:22 2013 -0800
Committer: Fil Maj <ma...@gmail.com>
Committed: Mon Feb 4 15:58:54 2013 -0800

----------------------------------------------------------------------
 audio/index.html               |    5 -
 benchmarks/arraybuffer.html    |  132 ++++++++++++++++++++++++++++
 benchmarks/index.html          |  164 +++++++++++++++++++++++++++++++++++
 execbenchmark/arraybuffer.html |  132 ----------------------------
 execbenchmark/index.html       |  164 -----------------------------------
 index.html                     |    2 +-
 6 files changed, 297 insertions(+), 302 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-mobile-spec/blob/66a4bd7f/audio/index.html
----------------------------------------------------------------------
diff --git a/audio/index.html b/audio/index.html
index 4edf37a..edd5c81 100644
--- a/audio/index.html
+++ b/audio/index.html
@@ -32,12 +32,7 @@
       
 <script type="text/javascript" charset="utf-8">
 
-	//var defaultaudio = "/android_asset/one.mp3"; //local file
 	 var defaultaudio = "http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3";
-       //var src = "http://neuga.s3.amazonaws.com/onclassical/strings-or gan.mp3";
- //      var src = "http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3";
-        //var src = "/android_asset/www/Jet_Sledding.mp4"; // no work
-        //var src = "http://vprbbc.streamguys.net/vprbbc24.mp3"; // mp3 streaming
     var deviceReady = false;
 
     //-------------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cordova-mobile-spec/blob/66a4bd7f/benchmarks/arraybuffer.html
----------------------------------------------------------------------
diff --git a/benchmarks/arraybuffer.html b/benchmarks/arraybuffer.html
new file mode 100644
index 0000000..516f66e
--- /dev/null
+++ b/benchmarks/arraybuffer.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+
+
+<html>
+  <head>
+    <meta name="viewport" content="width=device-width,height=device-height,user-scalable=no,maximum-scale=1.0,initial-scale=1.0" />
+    <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <!-- ISO-8859-1 -->
+    <title>Cordova Mobile Spec</title>
+    <link rel="stylesheet" href="../master.css" type="text/css" media="screen" title="no title" charset="utf-8">
+    <script type="text/javascript" charset="utf-8" src="../cordova.js"></script>
+
+<script>
+    var exec = cordova.require('cordova/exec'),
+        deviceReady = false;
+
+    function appLog(message) {
+        if (window.console) {
+            console.log(message);
+        }
+        if (typeof message != 'string') {
+            message = JSON.stringify(message);
+        }
+        document.getElementById('app-logs').innerText += message + '\n';
+    }
+
+    function benchExec() {
+        var echo = cordova.require('cordova/plugin/echo'),
+            startTime = +new Date,
+            callCount = 0,
+            durationMs = parseInt(document.getElementById('test-duration').value, 10) * 1000,
+            payloadSize = (+document.getElementById('payload-size').value),
+            payload = new ArrayBuffer(payloadSize);
+
+        var payloadView = new Uint8Array(payload);
+        for (var i=0; i<payloadView.length; i++) {
+            payloadView[i] = i;
+        }
+
+        function compareArrayBuffers(arr1, arr2) {
+            arr1 = new Uint8Array(arr1);
+            arr2 = new Uint8Array(arr2);
+            if (arr1.length != arr2.length)
+                return false;
+            for (var i = 0; i < arr1.length; ++i) {
+                if (arr1[i] != arr2[i]) {
+                    return false;
+                }
+            }
+            return true;
+        }
+
+        function win(result) {
+            callCount++;
+            if (!compareArrayBuffers(result, payload)) {
+                appLog('Wrong echo data!');
+                return;
+            }
+            var elapsedMs = new Date - startTime;
+            if (elapsedMs >= durationMs) {
+                var callsPerSecond = callCount * 1000 / elapsedMs;
+                appLog('Calls per second: ' + callsPerSecond);
+                return;
+            }
+            echoMessage();
+        }
+        function fail() {
+            appLog('Call failed!');
+        }
+        function echoMessage() {
+            setTimeout(function() {
+                echo(win, fail, payload);
+            });
+        }
+
+        appLog('Started exec benchmark with payload length: ' + payloadView.length);
+        echoMessage();
+        setTimeout(function() {
+            if (!callCount) {
+                alert('Echo plugin did not respond');
+            }
+        }, 500);
+    }
+
+    document.addEventListener("deviceready", function() {
+        deviceReady = true;
+        appLog("Device = " + device.platform + " " + device.version);
+    }, false);
+
+    window.onload = function() {
+        window.setTimeout(function() {
+            if (!deviceReady) {
+                alert("Error: Cordova did not initialize.  Demo will not run correctly.");
+            }
+        }, 1000);
+    };
+
+</script>
+
+  </head>
+  <body id="stage" class="theme">
+    <h1>ArrayBuffer Benchmark</h1>
+    <fieldset>
+        <legend>Settings</legend>
+        <label>Test Duration: <select id="test-duration"><option>1 Second</option><option>5 Seconds</option></select><br></label>
+        <label>Payload size (in bytes) <input id="payload-size" value="1024" style="width:100px"></label><br>
+        <button onclick="benchExec()">Benchmark exec</button><br>
+    </fieldset>
+    <h2>&nbsp</h2><a href="javascript:" class="backBtn" onclick="backHome();">Back</a><br>
+    <div>Results:</div>
+    <pre id="app-logs" style="white-space:pre-wrap;line-height:initial"></pre>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/cordova-mobile-spec/blob/66a4bd7f/benchmarks/index.html
----------------------------------------------------------------------
diff --git a/benchmarks/index.html b/benchmarks/index.html
new file mode 100644
index 0000000..35c9c36
--- /dev/null
+++ b/benchmarks/index.html
@@ -0,0 +1,164 @@
+<!DOCTYPE html>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+
+
+<html>
+  <head>
+    <meta name="viewport" content="width=device-width,height=device-height,user-scalable=no,maximum-scale=1.0,initial-scale=1.0" />
+    <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <!-- ISO-8859-1 -->
+    <title>Cordova Mobile Spec</title>
+    <link rel="stylesheet" href="../master.css" type="text/css" media="screen" title="no title" charset="utf-8">
+    <script type="text/javascript" charset="utf-8" src="../cordova.js"></script>      
+      
+<script>
+    var exec = cordova.require('cordova/exec'),
+        appLogElem = null,
+        deviceReady = false;
+
+    function appLog(message) {
+        if (!appLogElem) {
+            appLogElem = document.getElementById('app-logs');
+        }
+        appLogElem.innerText += message + '\n';
+        if (window.console) {
+            console.log(message);
+        }
+    }
+
+    function clearLogs() {
+        appLogElem.innerHTML = '';
+    }
+
+    function benchExec() {
+        var echo = cordova.require('cordova/plugin/echo'),
+            startTime = +new Date,
+            callCount = 0,
+            durationMs = parseInt(document.getElementById('test-duration').value, 10) * 1000,
+            asyncEcho = document.getElementById('async-echo').checked,
+            useSetTimeout = document.getElementById('use-setTimeout').checked,
+            jsToNativeMode = document.getElementById('js-native-modes').value,
+            nativeToJsMode = document.getElementById('native-js-modes').value,
+            payloadSize = +document.getElementById('payload-size').value,
+            payload = new Array(payloadSize * 10 + 1).join('012\n\n 6789');
+        
+        function win(result) {
+            callCount++;
+            if (result != payload) {
+                appLog('Wrong echo data!');
+            }
+            var elapsedMs = new Date - startTime;
+            if (elapsedMs < durationMs) {
+                if (useSetTimeout) {
+                    setTimeout(echoMessage, 0);
+                } else {
+                    echoMessage();
+                }
+            } else {
+                var callsPerSecond = callCount * 1000 / elapsedMs;
+                appLog('Calls per second: ' + callsPerSecond);
+            }
+        }
+        function fail() {
+            appLog('Call failed!');
+        }
+        function echoMessage() {
+            echo(win, fail, payload, asyncEcho);
+        }
+        
+        var logMsg = 'Started exec benchmark with setTimeout: ' + useSetTimeout + ' asyncEcho: ' + asyncEcho + ' payload length: ' + payload.length;
+        if (jsToNativeMode) {
+            exec.setJsToNativeBridgeMode(+jsToNativeMode);
+            logMsg += ' jsToNativeMode: ' + jsToNativeMode;
+        }
+        if (nativeToJsMode) {
+            exec.setNativeToJsBridgeMode(+nativeToJsMode);
+            logMsg += ' nativeToJsMode: ' + nativeToJsMode;
+        }
+        appLog(logMsg);
+        echoMessage();
+        setTimeout(function() {
+            if (!callCount) {
+                alert('Echo plugin did not respond');
+            }
+        }, 500);
+    }
+
+    function configure() {
+        function configureModes(elemId, modes) {
+            var selectElem = document.getElementById(elemId);
+            for (var modeName in modes) {
+                var optionElem = document.createElement('option');
+                optionElem.value = modes[modeName];
+                optionElem.innerText = modeName;
+                selectElem.appendChild(optionElem);
+            }
+            selectElem.parentNode.style.display = 'block';
+        }
+        if (exec.jsToNativeModes) {
+            configureModes('js-native-modes', exec.jsToNativeModes);
+        }
+        if (exec.nativeToJsModes) {
+            configureModes('native-js-modes', exec.nativeToJsModes);
+        }
+    }
+
+
+    document.addEventListener("deviceready", function() {
+        deviceReady = true;
+        appLog("Device="+device.platform+" "+device.version);
+        configure();
+    }, false);
+
+    window.onload = function() {
+        window.setTimeout(function() {
+            if (!deviceReady) {
+                alert("Error: Cordova did not initialize.  Demo will not run correctly.");
+            }
+        }, 1000);
+    };
+
+</script>
+
+  </head>
+  <body id="stage" class="theme">
+    <a href="arraybuffer.html" class="btn large">ArrayBuffer Benchmark</a>
+    <h1>exec() Benchmark</h1>
+    Before running on Android, set the following constants in NativeToJsMessagingBridge:
+    <ul>
+      <li>ENABLE_LOCATION_CHANGE_EXEC_MODE = true
+      <li>DISABLE_EXEC_CHAINING = true
+    </ul>
+    <fieldset>
+        <legend>Settings</legend>
+        <label>Test Duration: <select id="test-duration"><option>1 Second</option><option>5 Seconds</option></select><br></label>
+        <label style="display:none">JS-&gt;Native Bridge Mode: <select id="js-native-modes"></select><br></label>
+        <label style="display:none">Native-&gt;JS Bridge Mode: <select id="native-js-modes"></select><br></label>
+        <label><input type="checkbox" id="use-setTimeout"> Force async JS-&gt;Native</label><br>
+        <label><input type="checkbox" id="async-echo"> Force async Native-&gt;JS</label><br>
+        <label>Payload size (in 100s of bytes) <input id="payload-size" value="5" style="width:100px"></label><br>
+        <button onclick="benchExec()">Benchmark exec</button><br>
+    </fieldset>
+    <h2>&nbsp</h2><a href="javascript:" class="backBtn" onclick="backHome();">Back</a><br>
+    <div>Results: <a href="javascript:clearLogs();">Clear</a></div>
+    <pre id="app-logs" style="white-space:pre-wrap;line-height:initial"></pre>
+  </body>
+</html>      

http://git-wip-us.apache.org/repos/asf/cordova-mobile-spec/blob/66a4bd7f/execbenchmark/arraybuffer.html
----------------------------------------------------------------------
diff --git a/execbenchmark/arraybuffer.html b/execbenchmark/arraybuffer.html
deleted file mode 100644
index 516f66e..0000000
--- a/execbenchmark/arraybuffer.html
+++ /dev/null
@@ -1,132 +0,0 @@
-<!DOCTYPE html>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-
-
-<html>
-  <head>
-    <meta name="viewport" content="width=device-width,height=device-height,user-scalable=no,maximum-scale=1.0,initial-scale=1.0" />
-    <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <!-- ISO-8859-1 -->
-    <title>Cordova Mobile Spec</title>
-    <link rel="stylesheet" href="../master.css" type="text/css" media="screen" title="no title" charset="utf-8">
-    <script type="text/javascript" charset="utf-8" src="../cordova.js"></script>
-
-<script>
-    var exec = cordova.require('cordova/exec'),
-        deviceReady = false;
-
-    function appLog(message) {
-        if (window.console) {
-            console.log(message);
-        }
-        if (typeof message != 'string') {
-            message = JSON.stringify(message);
-        }
-        document.getElementById('app-logs').innerText += message + '\n';
-    }
-
-    function benchExec() {
-        var echo = cordova.require('cordova/plugin/echo'),
-            startTime = +new Date,
-            callCount = 0,
-            durationMs = parseInt(document.getElementById('test-duration').value, 10) * 1000,
-            payloadSize = (+document.getElementById('payload-size').value),
-            payload = new ArrayBuffer(payloadSize);
-
-        var payloadView = new Uint8Array(payload);
-        for (var i=0; i<payloadView.length; i++) {
-            payloadView[i] = i;
-        }
-
-        function compareArrayBuffers(arr1, arr2) {
-            arr1 = new Uint8Array(arr1);
-            arr2 = new Uint8Array(arr2);
-            if (arr1.length != arr2.length)
-                return false;
-            for (var i = 0; i < arr1.length; ++i) {
-                if (arr1[i] != arr2[i]) {
-                    return false;
-                }
-            }
-            return true;
-        }
-
-        function win(result) {
-            callCount++;
-            if (!compareArrayBuffers(result, payload)) {
-                appLog('Wrong echo data!');
-                return;
-            }
-            var elapsedMs = new Date - startTime;
-            if (elapsedMs >= durationMs) {
-                var callsPerSecond = callCount * 1000 / elapsedMs;
-                appLog('Calls per second: ' + callsPerSecond);
-                return;
-            }
-            echoMessage();
-        }
-        function fail() {
-            appLog('Call failed!');
-        }
-        function echoMessage() {
-            setTimeout(function() {
-                echo(win, fail, payload);
-            });
-        }
-
-        appLog('Started exec benchmark with payload length: ' + payloadView.length);
-        echoMessage();
-        setTimeout(function() {
-            if (!callCount) {
-                alert('Echo plugin did not respond');
-            }
-        }, 500);
-    }
-
-    document.addEventListener("deviceready", function() {
-        deviceReady = true;
-        appLog("Device = " + device.platform + " " + device.version);
-    }, false);
-
-    window.onload = function() {
-        window.setTimeout(function() {
-            if (!deviceReady) {
-                alert("Error: Cordova did not initialize.  Demo will not run correctly.");
-            }
-        }, 1000);
-    };
-
-</script>
-
-  </head>
-  <body id="stage" class="theme">
-    <h1>ArrayBuffer Benchmark</h1>
-    <fieldset>
-        <legend>Settings</legend>
-        <label>Test Duration: <select id="test-duration"><option>1 Second</option><option>5 Seconds</option></select><br></label>
-        <label>Payload size (in bytes) <input id="payload-size" value="1024" style="width:100px"></label><br>
-        <button onclick="benchExec()">Benchmark exec</button><br>
-    </fieldset>
-    <h2>&nbsp</h2><a href="javascript:" class="backBtn" onclick="backHome();">Back</a><br>
-    <div>Results:</div>
-    <pre id="app-logs" style="white-space:pre-wrap;line-height:initial"></pre>
-  </body>
-</html>

http://git-wip-us.apache.org/repos/asf/cordova-mobile-spec/blob/66a4bd7f/execbenchmark/index.html
----------------------------------------------------------------------
diff --git a/execbenchmark/index.html b/execbenchmark/index.html
deleted file mode 100644
index 35c9c36..0000000
--- a/execbenchmark/index.html
+++ /dev/null
@@ -1,164 +0,0 @@
-<!DOCTYPE html>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-
-
-<html>
-  <head>
-    <meta name="viewport" content="width=device-width,height=device-height,user-scalable=no,maximum-scale=1.0,initial-scale=1.0" />
-    <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <!-- ISO-8859-1 -->
-    <title>Cordova Mobile Spec</title>
-    <link rel="stylesheet" href="../master.css" type="text/css" media="screen" title="no title" charset="utf-8">
-    <script type="text/javascript" charset="utf-8" src="../cordova.js"></script>      
-      
-<script>
-    var exec = cordova.require('cordova/exec'),
-        appLogElem = null,
-        deviceReady = false;
-
-    function appLog(message) {
-        if (!appLogElem) {
-            appLogElem = document.getElementById('app-logs');
-        }
-        appLogElem.innerText += message + '\n';
-        if (window.console) {
-            console.log(message);
-        }
-    }
-
-    function clearLogs() {
-        appLogElem.innerHTML = '';
-    }
-
-    function benchExec() {
-        var echo = cordova.require('cordova/plugin/echo'),
-            startTime = +new Date,
-            callCount = 0,
-            durationMs = parseInt(document.getElementById('test-duration').value, 10) * 1000,
-            asyncEcho = document.getElementById('async-echo').checked,
-            useSetTimeout = document.getElementById('use-setTimeout').checked,
-            jsToNativeMode = document.getElementById('js-native-modes').value,
-            nativeToJsMode = document.getElementById('native-js-modes').value,
-            payloadSize = +document.getElementById('payload-size').value,
-            payload = new Array(payloadSize * 10 + 1).join('012\n\n 6789');
-        
-        function win(result) {
-            callCount++;
-            if (result != payload) {
-                appLog('Wrong echo data!');
-            }
-            var elapsedMs = new Date - startTime;
-            if (elapsedMs < durationMs) {
-                if (useSetTimeout) {
-                    setTimeout(echoMessage, 0);
-                } else {
-                    echoMessage();
-                }
-            } else {
-                var callsPerSecond = callCount * 1000 / elapsedMs;
-                appLog('Calls per second: ' + callsPerSecond);
-            }
-        }
-        function fail() {
-            appLog('Call failed!');
-        }
-        function echoMessage() {
-            echo(win, fail, payload, asyncEcho);
-        }
-        
-        var logMsg = 'Started exec benchmark with setTimeout: ' + useSetTimeout + ' asyncEcho: ' + asyncEcho + ' payload length: ' + payload.length;
-        if (jsToNativeMode) {
-            exec.setJsToNativeBridgeMode(+jsToNativeMode);
-            logMsg += ' jsToNativeMode: ' + jsToNativeMode;
-        }
-        if (nativeToJsMode) {
-            exec.setNativeToJsBridgeMode(+nativeToJsMode);
-            logMsg += ' nativeToJsMode: ' + nativeToJsMode;
-        }
-        appLog(logMsg);
-        echoMessage();
-        setTimeout(function() {
-            if (!callCount) {
-                alert('Echo plugin did not respond');
-            }
-        }, 500);
-    }
-
-    function configure() {
-        function configureModes(elemId, modes) {
-            var selectElem = document.getElementById(elemId);
-            for (var modeName in modes) {
-                var optionElem = document.createElement('option');
-                optionElem.value = modes[modeName];
-                optionElem.innerText = modeName;
-                selectElem.appendChild(optionElem);
-            }
-            selectElem.parentNode.style.display = 'block';
-        }
-        if (exec.jsToNativeModes) {
-            configureModes('js-native-modes', exec.jsToNativeModes);
-        }
-        if (exec.nativeToJsModes) {
-            configureModes('native-js-modes', exec.nativeToJsModes);
-        }
-    }
-
-
-    document.addEventListener("deviceready", function() {
-        deviceReady = true;
-        appLog("Device="+device.platform+" "+device.version);
-        configure();
-    }, false);
-
-    window.onload = function() {
-        window.setTimeout(function() {
-            if (!deviceReady) {
-                alert("Error: Cordova did not initialize.  Demo will not run correctly.");
-            }
-        }, 1000);
-    };
-
-</script>
-
-  </head>
-  <body id="stage" class="theme">
-    <a href="arraybuffer.html" class="btn large">ArrayBuffer Benchmark</a>
-    <h1>exec() Benchmark</h1>
-    Before running on Android, set the following constants in NativeToJsMessagingBridge:
-    <ul>
-      <li>ENABLE_LOCATION_CHANGE_EXEC_MODE = true
-      <li>DISABLE_EXEC_CHAINING = true
-    </ul>
-    <fieldset>
-        <legend>Settings</legend>
-        <label>Test Duration: <select id="test-duration"><option>1 Second</option><option>5 Seconds</option></select><br></label>
-        <label style="display:none">JS-&gt;Native Bridge Mode: <select id="js-native-modes"></select><br></label>
-        <label style="display:none">Native-&gt;JS Bridge Mode: <select id="native-js-modes"></select><br></label>
-        <label><input type="checkbox" id="use-setTimeout"> Force async JS-&gt;Native</label><br>
-        <label><input type="checkbox" id="async-echo"> Force async Native-&gt;JS</label><br>
-        <label>Payload size (in 100s of bytes) <input id="payload-size" value="5" style="width:100px"></label><br>
-        <button onclick="benchExec()">Benchmark exec</button><br>
-    </fieldset>
-    <h2>&nbsp</h2><a href="javascript:" class="backBtn" onclick="backHome();">Back</a><br>
-    <div>Results: <a href="javascript:clearLogs();">Clear</a></div>
-    <pre id="app-logs" style="white-space:pre-wrap;line-height:initial"></pre>
-  </body>
-</html>      

http://git-wip-us.apache.org/repos/asf/cordova-mobile-spec/blob/66a4bd7f/index.html
----------------------------------------------------------------------
diff --git a/index.html b/index.html
index 464ccf8..23683ae 100644
--- a/index.html
+++ b/index.html
@@ -58,7 +58,7 @@
     <a href="notification/index.html" class="btn large">Notification</a>
     <a href="sql/index.html" class="btn large">Web SQL</a>
     <a href="storage/index.html" class="btn large">Local Storage</a>
-    <a href="execbenchmark/index.html" class="btn large">Benchmark exec()</a>
+    <a href="benchmarks/index.html" class="btn large">Benchmarks</a>
     <a href="inappbrowser/index.html" class="btn large">In App Browser</a>
   </body>
 </html>