Code Monkey home page Code Monkey logo

juce-paint-profiling's Introduction

A quick way to measure a components paint() performance and store the result as .csv for later analysis. Because of memory alignment and branch prediction stuff, I wouldnt use it to compare bufferedToImage true/false for components.

By default it stores the csv files in userDocsDir/JuceComponentRepaintData

How to use:

	//default settings

    juce::Component testComp;
    testComp.setName("TestComp");
    JuceComponentRepaintProfiler tester;
    tester.measureRepaints(&testComp);
    //custom settings

    JuceComponentRepaintProfiler tester;
    //repaints every 4th and 8th repaint call
    tester.repaintIntervalsToTest = {4, 8};
    //testing for the sizes 1000x1000, 1000x500, 500x1000, 500x500
    tester.maxWidth = 1000;
    tester.widthTestIntervalInPx = 500;
    tester.maxHeight = 1000;
    tester.heightTestIntervalInPx = 500;
    //testing each setting with 50 repetitions
    tester.numRuns = 50;

    juce::Component testComp;
    testComp.setName("TestComp");
    tester.measureRepaints(&testComp);

warning: to test the same component twice with different settings, rename it. Otherwise the new results will be added to the existing csv file.

    //testing the same comp with different settings

    JuceComponentRepaintProfiler tester;

    TestComp testComp;

    testComp.setName("TestComp");
    tester.measureRepaints(&testComp);

    testComp.setOpaque(true);
    testComp.setName("TestComp Opaque")
    tester.measureRepaints(&testComp);

TODO:

  • measure component tree structures paint performance

juce-paint-profiling's People

Contributors

moritzsur avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.