/** Add a value and update all fields. * @param value The value to add */ public void put (float value) { latest = value; total += value; count++; average = total / count; if (mean != null) { mean.addValue(value); this.value = mean.getMean(); } else this.value = latest; if (mean == null || mean.hasEnoughData()) { if (this.value < min) min = this.value; if (this.value > max) max = this.value; } }
/** Reset all values to their default value. */ public void reset () { count = 0; total = 0f; min = Float.MAX_VALUE; max = Float.MIN_VALUE; average = 0f; latest = 0f; value = 0f; if (mean != null) mean.clear(); } }
/** Construct a new FloatCounter * @param windowSize The size of the mean window or 1 or below to not use a windowed mean. */ public FloatCounter (int windowSize) { mean = (windowSize > 1) ? new WindowedMean(windowSize) : null; reset(); }
/** @return The standard deviation */ public float standardDeviation () { if (!hasEnoughData()) return 0; float mean = getMean(); float sum = 0; for (int i = 0; i < values.length; i++) { sum += (values[i] - mean) * (values[i] - mean); } return (float)Math.sqrt(sum / values.length); }
if (timePassed > 1.0f) { System.out.println("DecalPerformanceTest2 fps: " + frames + " at spritecount: " + toRender.size()); fps.addValue(frames); if (fps.hasEnoughData()) { float factor = fps.getMean() / (float)TARGET_FPS; int target = (int)(toRender.size() * factor); if (fps.getMean() > TARGET_FPS) { int start = toRender.size(); for (int i = start; toRender.size() < target; i++) { toRender.add(makeDecal()); fps.clear(); } else { while (toRender.size() > target) { toRender.removeLast(); fps.clear();
oldVBOWithVAOMesh.render(shader, GL20.GL_TRIANGLES); Gdx.gl.glFlush(); oldCounter.addValue((System.nanoTime() - beforeOld)); shader.end(); newVBOWithVAOMesh.render(shader, GL20.GL_TRIANGLES); Gdx.gl.glFlush(); newCounter.addValue((System.nanoTime() - beforeNew)); shader.end(); oldVBOWithVAOMesh.render(shader, GL20.GL_TRIANGLES); Gdx.gl.glFlush(); oldCounterStress.addValue((System.nanoTime() - beforeOldStress)); shader.end(); newVBOWithVAOMesh.render(shader, GL20.GL_TRIANGLES); Gdx.gl.glFlush(); newCounterStress.addValue((System.nanoTime() - beforeNewStress)); shader.end(); stringBuilder.setLength(0); stringBuilder.append("O Mean Time: "); stringBuilder.append(oldCounter.getMean()); bitmapFont.draw(batch, stringBuilder, 0, 200); stringBuilder.setLength(0); stringBuilder.append("N Mean Time: "); stringBuilder.append(newCounter.getMean()); bitmapFont.draw(batch, stringBuilder, 0, 200 - 20);
mean.addValue(deltaTime); } else { deltaTime = 0;
/** returns the mean of the samples added to this instance. Only returns meaningful results when at least window_size samples * as specified in the constructor have been added. * @return the mean */ public float getMean () { if (hasEnoughData()) { if (dirty) { float mean = 0; for (int i = 0; i < values.length; i++) mean += values[i]; this.mean = mean / values.length; dirty = false; } return this.mean; } else return 0; }
private boolean collect () { long time = TimeUtils.nanoTime(); if (time - startTime > intervalNs) { // shift values for (int i = PanelWidth - 1; i > 0; i--) { dataRenderTime[i] = dataRenderTime[i - 1]; dataPhysicsTime[i] = dataPhysicsTime[i - 1]; dataFps[i] = dataFps[i - 1]; dataTimeAliasing[i] = dataTimeAliasing[i - 1]; } meanPhysics.addValue(URacer.Game.getPhysicsTime()); meanRender.addValue(URacer.Game.getRenderTime()); meanTickCount.addValue(URacer.Game.getLastTicksCount()); dataPhysicsTime[0] = meanPhysics.getMean(); dataRenderTime[0] = meanRender.getMean(); dataFps[0] = Gdx.graphics.getFramesPerSecond(); dataTimeAliasing[0] = URacer.Game.getTemporalAliasing(); startTime = time; return true; } return false; } }
/** @return The standard deviation */ public float standardDeviation () { if (!hasEnoughData()) return 0; float mean = getMean(); float sum = 0; for (int i = 0; i < values.length; i++) { sum += (values[i] - mean) * (values[i] - mean); } return (float)Math.sqrt(sum / values.length); }
mean.addValue(deltaTime); } else { deltaTime = 0;
/** returns the mean of the samples added to this instance. Only returns meaningful results when at least window_size samples * as specified in the constructor have been added. * @return the mean */ public float getMean () { if (hasEnoughData()) { if (dirty) { float mean = 0; for (int i = 0; i < values.length; i++) mean += values[i]; this.mean = mean / values.length; dirty = false; } return this.mean; } else return 0; }
/** Add a value and update all fields. * @param value The value to add */ public void put (float value) { latest = value; total += value; count++; average = total / count; if (mean != null) { mean.addValue(value); this.value = mean.getMean(); } else this.value = latest; if (mean == null || mean.hasEnoughData()) { if (this.value < min) min = this.value; if (this.value > max) max = this.value; } }
/** Reset all values to their default value. */ public void reset () { count = 0; total = 0f; min = Float.MAX_VALUE; max = Float.MIN_VALUE; average = 0f; latest = 0f; value = 0f; if (mean != null) mean.clear(); } }
/** @return The standard deviation */ public float standardDeviation () { if (!hasEnoughData()) return 0; float mean = getMean(); float sum = 0; for (int i = 0; i < values.length; i++) { sum += (values[i] - mean) * (values[i] - mean); } return (float)Math.sqrt(sum / values.length); }
public float getDriftStrength () { return driftStrength.getMean(); }
mean.addValue(deltaTime); } else { deltaTime = 0;
/** Construct a new FloatCounter * @param windowSize The size of the mean window or 1 or below to not use a windowed mean. */ public FloatCounter (int windowSize) { mean = (windowSize > 1) ? new WindowedMean(windowSize) : null; reset(); }