summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsebres <sebres@users.sourceforge.net>2017-03-07 11:35:03 (GMT)
committersebres <sebres@users.sourceforge.net>2017-03-07 11:35:03 (GMT)
commit279bfdeef3577e9767bfafc7102011176f88034f (patch)
tree4db36289a3566ca03c981d6a8416849c45050e7b
parentaec683eef83d7d5bd08f063a4c256ed937de89f4 (diff)
downloadtcl-279bfdeef3577e9767bfafc7102011176f88034f.zip
tcl-279bfdeef3577e9767bfafc7102011176f88034f.tar.gz
tcl-279bfdeef3577e9767bfafc7102011176f88034f.tar.bz2
timerate: don't calculate threshold by too few iterations, because sometimes first iteration(s) can be too fast (cached, delayed clean up, etc).
-rw-r--r--generic/tclCmdMZ.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/generic/tclCmdMZ.c b/generic/tclCmdMZ.c
index 14ff5f0..b62ccf8 100644
--- a/generic/tclCmdMZ.c
+++ b/generic/tclCmdMZ.c
@@ -4282,6 +4282,13 @@ usage:
if (middle >= stop) {
break;
}
+
+ /* don't calculate threshold by few iterations, because sometimes
+ * first iteration(s) can be too fast (cached, delayed clean up, etc) */
+ if (count < 10) {
+ threshold = 1; continue;
+ }
+
/* average iteration time in microsecs */
threshold = (middle - start) / count;
if (threshold > maxIterTm) {