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)
commitdb083499bfff8aee794512e3da2f0ad2f201f6b0 (patch)
tree4db36289a3566ca03c981d6a8416849c45050e7b
parent9f13ce8038e4c27cab5d0ee977a61ca48bde2b73 (diff)
downloadtcl-db083499bfff8aee794512e3da2f0ad2f201f6b0.zip
tcl-db083499bfff8aee794512e3da2f0ad2f201f6b0.tar.gz
tcl-db083499bfff8aee794512e3da2f0ad2f201f6b0.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) {