anchor.diff:  
   perform_parallel_appends(Worker, LogId, AppendSize, ProcRepeats, ProcNum) ->
       Self = self(),
  +    Stopwatch = stopwatch:start(),
       Pids = [spawn_link(Worker, fun() ->
  -        Stopwatch = stopwatch:start(),
           perform_appends(Worker, LogId, AppendSize, ProcRepeats),
  -        Self ! {self(), {ok, stopwatch:read_micros(Stopwatch)}}
  +        Self ! {self(), ok}
       end) || _ <- lists:seq(1, ProcNum)],
  -    Responses = [receive {Pid, Resp} -> Resp  end || Pid <- Pids],
  -
  -    lists:foldl(fun({ok, Time}, TimeAcc) ->
  -        Time + TimeAcc
  -    end, 0, Responses).
  +    Times = [receive {Pid, ok} -> stopwatch:read_micros(Stopwatch) end || Pid <- Pids],
  +    lists:max(Times).
   
   
   perform_appends(Worker, LogId, AppendSize, Repeats) ->
  
positive.code:                 "list starting from:     ~p\n"
                  "offset:                 ~p\n"
                  "limit:                  ~p\n"
                  "time:                   ~p [us]\n"
                  "lists per us:           ~p\n"
                      , [ProcNum, ProcRepeats, AppendSize, MaxEntriesPerNode, SizePruningThreshold, AgePruningThreshold,
                          ListDirection, ListStartFrom, ListOffset, ListLimit,
                          Time, ProcNum * ProcRepeats / Time])
              end, MaxEntriesPerNodeList)
          end, AgePruningThresholdList)
      end, SizePruningThresholdList).
  
negative.code:                 "max entries per node:   ~p\n"
                  "size pruning threshold: ~p\n"
                  "age pruning threshold:  ~p\n"
                  "time:                   ~p [ms]\n"
                  "appends per ms:         ~p"
                      , [ProcNum, ProcRepeats, AppendSize, MaxEntriesPerNode, SizePruningThreshold, AgePruningThreshold,
                          Time / 1000, 1000 * ProcNum * ProcRepeats / Time])
              end, MaxEntriesPerNodeList)
          end, AgePruningThresholdList)
      end, SizePruningThresholdList).
  