1// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5var itrMax = 1000; 6var itrCount = 0; 7var itrSend = new Float64Array(itrMax); 8var itrNaCl = new Float64Array(itrMax); 9var itrRecv = new Float64Array(itrMax); 10var delay = 0; 11 12function getTimeInMilliseconds() { 13 return (new Date()).getTime(); 14} 15 16function attachListeners() { 17 document.getElementById('start').addEventListener('click', startTest); 18 countEl = document.getElementById('count'); 19 countEl.textContent = itrMax; 20} 21 22function startTest() { 23 if (common.naclModule) { 24 var startEl = document.getElementById('start'); 25 startEl.disabled = true; 26 27 var delayEl = document.getElementById('delay'); 28 delay = parseInt(delayEl.value, 10); 29 30 common.updateStatus('Running Test'); 31 itrCount = 0; 32 itrSend[0] = getTimeInMilliseconds(); 33 common.naclModule.postMessage(delay); 34 } 35} 36 37function setStats(nacl, compute, total) { 38 var statNaClEl = document.getElementById('NaCl'); 39 var statRoundEl = document.getElementById('Round'); 40 var statTotalEl = document.getElementById('Total'); 41 42 statNaClEl.textContent = (nacl / itrMax) + ' ms'; 43 statRoundEl.textContent = (compute / itrMax) + ' ms'; 44 statTotalEl.textContent = (total / itrMax) + ' ms'; 45} 46 47// Called by the common.js module. 48function handleMessage(message_event) { 49 // Convert NaCl Seconds elapsed to MS 50 itrNaCl[itrCount] = message_event.data * 1000.0; 51 itrRecv[itrCount] = getTimeInMilliseconds(); 52 itrCount++; 53 54 if (itrCount === itrMax) { 55 common.updateStatus('Test Finished'); 56 var startEl = document.getElementById('start'); 57 startEl.disabled = false; 58 59 var naclMS = 0.0; 60 var computeMS = 0.0; 61 for (var i = 0; i < itrMax; i++) { 62 naclMS += itrNaCl[i]; 63 computeMS += itrRecv[i] - itrSend[i]; 64 } 65 66 setStats(naclMS, computeMS, itrRecv[itrMax - 1] - itrSend[0]); 67 } else { 68 itrSend[itrCount] = getTimeInMilliseconds(); 69 common.naclModule.postMessage(delay); 70 } 71} 72