From 6f404617aed6cd867ba4f17f8a8657dfe05a1fde Mon Sep 17 00:00:00 2001 From: Lucccyo Date: Wed, 8 Jun 2022 15:28:42 +0200 Subject: [PATCH 1/2] update replay --- bench/replay.ml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/bench/replay.ml b/bench/replay.ml index cc30303..e827359 100644 --- a/bench/replay.ml +++ b/bench/replay.ml @@ -71,10 +71,11 @@ module Make (Cache : Cachecache.S.Cache with type key = K.t) = struct +. mtime stats counter (fun _ -> ignore (Cache.find_opt cache k)); stats.find <- stats.find + 1 | Mem k -> - let b = Cache.mem cache k in + let b = ref false in stats.mem_span <- - stats.mem_span +. mtime stats counter (fun _ -> ignore b); - if b then stats.hit <- stats.hit + 1 + stats.mem_span + +. mtime stats counter (fun _ -> b := Cache.mem cache k); + if !b then stats.hit <- stats.hit + 1 else stats.miss <- stats.miss + 1; stats.mem <- stats.mem + 1 | _ -> assert false) @@ -89,7 +90,7 @@ module Bench_lru = Make (Lru) module Bench_lfu = Make (Lfu) let () = - let t = [| 1000; 10000; 100000 |] in + let t = [| 1000; 10000; 100_000 |] in for _ = 0 to 2 do for i = 0 to Array.length t - 1 do Fmt.pr "cap = %d\n" t.(i); From 0d1eac9624aa7fb7c4879c31d29b2d1148724080 Mon Sep 17 00:00:00 2001 From: Lucccyo Date: Fri, 17 Jun 2022 14:12:40 +0200 Subject: [PATCH 2/2] a --- src/lfu.mli | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lfu.mli b/src/lfu.mli index 8f2daf7..9ce63ca 100644 --- a/src/lfu.mli +++ b/src/lfu.mli @@ -8,6 +8,9 @@ end) : sig type key = K.t val v : int -> 'a t + + (*@ t = v c + checks c > 0 *) val stats : 'a t -> Stats.t val is_empty : 'a t -> bool val capacity : 'a t -> int