question: public static long nanosecondsToRun ( Runnable runnable ) { long start = TimeKeeper . getCurrentTimeAsNanos ( ) ; runnable . run ( ) ; long end = TimeKeeper . getCurrentTimeAsNanos ( ) ; return end - start ; }
target:  This method can take either a Runnable or a RunnableWithSetup.  In the case of RunnableWithSetup, the setup method will be called first, without impacting the timing.