title: Highly variable execution times in Cython functions
body: <p>I have a performance measurement issue while executing a migration to Cython from C-compiled functions (through scipy.weave) called from a Python engine.</p>
  
  <p>The new cython functions profiled end-to-end with <code>cProfile</code> (if not necessary I won't deep down in cython profiling) record cumulative measurement times highly variable.</p>
  
  <p>Eg. the cumulate time of a cython function executed 9 times per 5 repetitions (after a warm-up of 5 executions - not took in consideration by the profiling function) is taking:</p>
  
  <ul>
  <li>in a first round 215,627339 seconds</li>
  <li>in a second round 235,336131 seconds</li>
  </ul>
  
  <p>Each execution calls the functions many times with different, but fixed parameters.
  Maybe this variability could depends on CPU loads of the test machine (a cloud-hosted dedicated one), but I wonder if such a variability (almost 10%) could depend someway by cython or lack of optimization (I already use hints on division, bounds check, wrap-around, ...).</p>
  
  <p>Any idea on how to take reliable metrics?</p>