Para una sincronización efectiva de los programas, especialmente cuando está interesado en comparar soluciones alternativas, ¡necesita un control! Una buena manera es poner el procedimiento que estás cronometrando en una función. Llame a la función dentro de un ciclo de tiempo. Escriba un procedimiento de código auxiliar, esencialmente eliminando todo el código de su función y simplemente regresando de él (pero deje todos los argumentos). Coloque el trozo en su ciclo de tiempo y vuelva a cronometrar. Esto mide todos los gastos generales asociados con el tiempo. Reste el tiempo de resguardo del tiempo del procedimiento para obtener la red: esta debería ser una medida precisa del tiempo real necesario.
Debido a que la mayoría de los sistemas hoy en día pueden interrumpirse de manera perentoria, es importante realizar varias ejecuciones de temporización para verificar la variabilidad. En lugar de hacer una larga carrera de segundos, m ejecuciones de aproximadamente N / m segundos cada una. Es útil hacer esto en un bucle doble todo de una vez. No solo es más fácil de manejar, sino que introduce un poco de correlación negativa en cada serie de tiempo, lo que en realidad mejora las estimaciones.nortemetronorte/ m
Al utilizar estos principios básicos de diseño experimental, esencialmente controla las diferencias debidas a la forma en que implementa el código (por ejemplo, la diferencia entre un bucle for y replicate ()). Eso hace que tu problema desaparezca.