benchmarks/DBMonster/monitor.js
var Monitoring =
Monitoring ||
(function() {
var stats = new MemoryStats()
stats.domElement.style.position = 'fixed'
stats.domElement.style.right = '0px'
stats.domElement.style.bottom = '0px'
document.body.appendChild(stats.domElement)
requestAnimationFrame(function rAFloop() {
stats.update()
requestAnimationFrame(rAFloop)
})
var RenderRate = function() {
var container = document.createElement('div')
container.id = 'stats'
container.style.cssText =
'width:150px;opacity:0.9;cursor:pointer;position:fixed;right:80px;bottom:0px;'
var msDiv = document.createElement('div')
msDiv.id = 'ms'
msDiv.style.cssText =
'padding:0 0 3px 3px;text-align:left;background-color:#020;'
container.appendChild(msDiv)
var msText = document.createElement('div')
msText.id = 'msText'
msText.style.cssText =
'color:#0f0;font-family:Helvetica,Arial,sans-serif;font-size:9px;font-weight:bold;line-height:15px'
msText.innerHTML = 'Repaint rate: 0/sec'
msDiv.appendChild(msText)
var self = this
var rate = 0
var bucketSize = 20
var bucket = []
var lastTime = Date.now()
return {
domElement: container,
ping: function() {
var start = lastTime
var stop = Date.now()
var rate = 1000 / (stop - start)
if (rate == Infinity) {
return
}
bucket.push(rate)
if (bucket.length > bucketSize) {
bucket.shift()
}
var sum = 0
for (var i = 0; i < bucket.length; i++) {
sum = sum + bucket[i]
}
self.rate = sum / bucket.length
msText.textContent = 'Repaint rate: ' + self.rate.toFixed(2) + '/sec'
lastTime = stop
},
rate: function() {
return self.rate
}
}
}
var renderRate = new RenderRate()
document.body.appendChild(renderRate.domElement)
return {
memoryStats: stats,
renderRate: renderRate
}
})()