Skip to content

moritzsur/juce-paint-profiling

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages