Added conditional timing test based on RJ's patch, Thank you.
Added SuspendableTimer to exclude portions from measurement.
Made timing test symetric and add a reference time