Skip to content

Commit 7293b1c

Browse files
committed
Adding a test for require times
1 parent bab7560 commit 7293b1c

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

dev/tech/v3/dataset/load_test.clj

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
(ns tech.v3.dataset.load-test)
2+
3+
(def old-load-lib @#'clojure.core/load-lib)
4+
5+
(def data (time (let [loading* (atom nil)
6+
data* (atom [])]
7+
(with-redefs [clojure.core/load-lib
8+
(fn [prefix lib & options]
9+
(let [s (System/nanoTime)
10+
m {:parent @loading* :child lib}
11+
old-lib @loading*]
12+
(reset! loading* lib)
13+
;; (println {:prefix prefix :lib lib :options options})
14+
(let [out (apply old-load-lib prefix lib options)]
15+
(swap! data* conj (assoc m :t (- (System/nanoTime) s)))
16+
(reset! loading* old-lib)
17+
out)))]
18+
(require '[tech.v3.dataset :as ds]))
19+
@data*)))
20+
21+
(comment
22+
(require '[tech.v3.dataset :as ds])
23+
(def data-ds (ds/->dataset data))
24+
25+
(require '[ham-fisted.function :as hamf-fn])
26+
(defn process-data
27+
[data]
28+
(let [m (java.util.HashMap.)]
29+
(run! (fn [{:keys [parent child t]}]
30+
(.compute m child (hamf-fn/bi-function k v
31+
(+ (long t) (long (or v 0)))))
32+
(when parent
33+
(.compute m parent (hamf-fn/bi-function k v
34+
(- (long (or v 0)) t)))))
35+
data)
36+
(->> (mapv (juxt key val) (.entrySet m))
37+
(sort-by second >))))
38+
39+
(defn compute-loaded
40+
[data ns-name]
41+
(->> (get (group-by :child data)
42+
ns-name)
43+
(mapv :parent)))
44+
45+
(compute-loaded data 'ham-fisted.protocols)
46+
(compute-loaded data 'tech.v3.dataset.io.nippy)
47+
48+
(defn compute-loads
49+
[data ns-name]
50+
(->> (get (group-by :parent data)
51+
ns-name)
52+
(mapv :child)))
53+
54+
(compute-loads data 'ham-fisted.lazy-noncaching)
55+
56+
)

0 commit comments

Comments
 (0)