2013-04-22 60 views
0

我想要基準測試iOS本機可以在幀刷新與HTML5/JavaScript之間繪製的次數。測量iOS每幀可以繪製多少次

使用該JavaScript我得到一個號碼可以多次瀏覽器如何能在33毫秒(30赫茲)中得出:

var ctx = document.getElementById('canvas').getContext('2d'); 
var img = document.getElementById('img'); 

var draw = function(load) { 
    var angle = 0.01; 
    ctx.clearRect(0,0,400,400); 
    ctx.save(); 
    ctx.translate(200,200); 
    for (var i=0; i<load; i++) { 
     ctx.rotate(angle); 
     ctx.drawImage(img, 0, 0); 
    } 
    ctx.restore(); 
}; 

var t, previousTime; 
var drawLoad = 1; 
var slowCount = 0; 
var maxSlow = 10; 

var requestAnimationFrame = window.requestAnimationFrame || 
    window.webkitRequestAnimationFrame || 
    window.mozRequestAnimationFrame || 
    window.oRequestAnimationFrame || 
    window.msRequestAnimationFrame; 

t = previousTime = Date.now(); 

var tick = function() { 
    var maximumFrameTime = 1000/30; // 30 FPS 
    t = Date.now(); 
    var elapsed = t - previousTime; 
    previousTime = t; 
    if (elapsed < maximumFrameTime || slowCount < maxSlow) { 
     if (elapsed < maximumFrameTime) { 
      drawLoad+=10; 
     } else { 
      slowCount++; 
     } 
     draw(drawLoad); 
     requestAnimationFrame(tick); 
    } else { 
     // found maximum sustainable load at 30 FPS 
     document.getElementById('res').innerHTML = ("could draw "+(drawLoad)+" in " + maximumFrameTime + " ms"); 
    } 
}; 
requestAnimationFrame(tick); 

與HTML的標記完整代碼見http://jsfiddle.net/tbhZs/117/

我已經在objective-c中弄亂了,卻沒有找到公平的方式來獲得可比數字。有沒有辦法在iOS中本地生成可比較的基準測試?

回答

0

嘗試儀器工具。你可以通過核心動畫工具來測量每個社區的幀數。

+0

但它不是我想捕捉的FPS。這是iOS可以在屏幕更新之間繪製多少次。 – Andain 2013-04-22 18:04:44