chiark / gitweb /
adjust divisor
[chiark-tcl.git] / cdb / writeable.c
index a73be821a001a894b0114920a06e4b045f1ab985..d5c5c5ba8272c4493aa20f0d4fcd62ad1c9fd165 100644 (file)
@@ -778,7 +778,16 @@ static int compact_keepopen(Tcl_Interp *ip, Rw *rw, int force) {
   if (logsz < 0) return cht_posixerr(ip, errno, "ftell .log"
                                       " during compact check or force");
 
-  if (!force && logsz < rw->mainsz / 2 + 1000) return TCL_OK;
+  if (!force && logsz < rw->mainsz / 3 + 1000) return TCL_OK;
+  /* Test case:                    ^^^ testing best value for this
+   *   main=9690434by nrecs=122803  read all in one go
+   *  no autocompact, :    6.96user 0.68system 0:08.93elapsed
+   *  auto, mulitplier 2:  7.10user 0.79system 0:09.54elapsed
+   *  auto, unity:         7.80user 0.98system 0:11.84elapsed
+   *  auto, divisor  2:    8.23user 1.05system 0:13.30elapsed
+   *  auto, divisor  3:    8.55user 1.12system 0:12.88elapsed
+   *  auto, divisor  5:    9.95user 1.43system 0:15.72elapsed
+   */
 
   rc= compact_core(ip, rw, logsz, &reccount);  if (rc) goto x_rc;