int pastTime; int numTimings = 1000; //number of Timings taken for each frameRate int[] timings = new int[numTimings]; //stores the times int i = 0; //counts the timings int j = 0; //counter for frameRates int[] testRates = { 60, 100, 200, 500, 1000}; String output; PFont font; void setup() { output = ""; frameRate(200); size(640,640); background(0); font = loadFont("Arial-10.vlw"); textFont(font, 10); text("Testing with " + numTimings + " draw cycles for " + testRates.length + " test Rates....",20,20); println("======================================================"); output += "======================================================\n"; } void draw() { if (i < numTimings) { timings[i] = millis()-pastTime; pastTime = millis(); i++; } else { results(testRates[j]); if (j < testRates.length - 1) { i = 0; j++; frameRate(testRates[j]); } else { noLoop(); //stop the whole thing text(output, 20, 40, width-20, height-20); } } } void results(int rate) { timings = sort(timings); int item = timings[0]; int itemCount = 1; println("Rate was " + rate); output += "Rate was " + rate + "\n"; for (i = 0; i < timings.length; i++) { if (timings[i] == item) { itemCount++; } else { println(item + " " + itemCount + "x"); output += item + " " + itemCount + "x\n"; item = timings[i]; itemCount = 1; } } println("--------------------------------------------"); output += "--------------------------------------------\n"; }