very cool!  this will be great for A/B comparing things like effects
implementations and magic numbers.

On Fri, 2014-11-14 at 01:42 -0500, RJ Ryan wrote:
> Have you ever compiled two versions of Mixxx to run side-by-side to
> try and get a feel for whether your "smoothness" change is any good?
> 
> 
> Are you annoyed at having to continuously re-compile or re-run to test
> two different approaches you're considering?
> 
> 
> Are you bothered by sloppiness in our performance stat tracking -- how
> we include Mixxx startup and shutdown events (usually including
> mega-outliers) in all of our stat counters and then make decisions
> based on that? 
> 
> 
> You may be interested in my latest commit!
> https://github.com/mixxxdj/mixxx/commit/25a5fef18eadece78e65390f808abdd66e359796
> 
> 
> 
> This adds a lightweight "experiment" mode that lets you segment your
> measurements into a base bucket and an experiment bucket. 
> 
> 
> Create your usual timers / counters / stats trackers as usual and gate
> your new code on the experiment flag:
> 
> 
> #include "util/experiment.h"
> 
> 
> void CoolWidget::paintEvent(...) {
>   ScopedTimer t("CoolWidget::paintEvent");
> 
> 
>   ... beginning of paintEvent ...
> 
> 
>   // added this code 
> 
>   if (Experiment::isExperiment()) {
>     // Hope this speeds things up...
>     QThread::msleep(1);
>   } else if (Experiment::isBase()) {
>     // Optional, you can leave blank / as the existing behavior.
>   } else {
>     // If you want you can really test 3 different pieces of logic
>     // but you will only get explicit stats tracking 
>     // for BASE and EXPERIMENT modes.
>   }
> 
> 
>   ... rest of paintEvent ...
> }
> 
> 
> Compile and run Mixxx. 
> 
> 
> After Mixxx starts up and stabilizes:
> Hit Ctrl+Shift+B (or Developer -> Base) to start recording BASE
> samples. Toggle to stop recording.
> Hit Ctrl+Shift+E (or Developer -> Experiment) to start recording
> EXPERIMENT samples. Toggle to stop recording. 
> You can use this to capture exactly the time periods you would like to
> include in your sample of events (recording is cumulative within a
> single Mixxx session).
> 
> 
> When you quit Mixxx, where the stats are normally printed you now get
> a "BASE STATS" and "EXPERIMENT STATS" section. 
> 
> 
> Key points:
> - No more startup and shutdown events included in your stats
> tracking! 
> - Stats segmented into BASE and EXPERIMENT -- only for the times you
> choose to record.
> - Easily check anecdotal "feel" of a feature without re-compiling or
> re-starting Mixxx! 
> 
> 
> Future work:
> - Automatic comparison of stats across base and test (with hints about
> whether you have enough samples and statistical significance?) 
> - Automatic polling modes that regularly swap between base /
> experiment? 
> 
> 
> Go forth and measure!
> RJ
> ------------------------------------------------------------------------------
> Comprehensive Server Monitoring with Site24x7.
> Monitor 10 servers for $9/Month.
> Get alerted through email, SMS, voice calls or mobile push notifications.
> Take corrective actions from your mobile device.
> http://pubads.g.doubleclick.net/gampad/clk?id=154624111&iu=/4140/ostg.clktrk
> _______________________________________________
> Get Mixxx, the #1 Free MP3 DJ Mixing software Today
> http://mixxx.org
> 
> 
> Mixxx-devel mailing list
> Mixxx-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mixxx-devel



------------------------------------------------------------------------------
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://pubads.g.doubleclick.net/gampad/clk?id=154624111&iu=/4140/ostg.clktrk
_______________________________________________
Get Mixxx, the #1 Free MP3 DJ Mixing software Today
http://mixxx.org


Mixxx-devel mailing list
Mixxx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to