0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-02-14 02:58:39 -05:00
penpot/dev/bench/core.cljs

82 lines
1.7 KiB
Text
Raw Normal View History

2016-04-07 22:51:40 +03:00
(ns bench.core
2016-04-09 20:32:15 +03:00
(:require [kdtree :as k]
[cljs.nodejs :as node]))
2016-04-07 22:51:40 +03:00
(enable-console-print!)
(defn generate-points
[n]
(for [x (range 0 n)
y (range 0 n)]
2016-04-09 20:32:15 +03:00
#js [x y]))
2016-04-07 22:51:40 +03:00
(defn bench-init-100
[]
2016-04-09 20:32:15 +03:00
(js/console.time "init:100")
2016-04-07 22:51:40 +03:00
(let [points (into-array (generate-points 10))]
2016-04-09 20:32:15 +03:00
(k/create2d points)
(js/console.timeEnd "init:100")))
2016-04-07 22:51:40 +03:00
2016-04-09 20:32:15 +03:00
(defn bench-init-10000
2016-04-07 22:51:40 +03:00
[]
2016-04-09 20:32:15 +03:00
(js/console.time "init:10000")
2016-04-07 22:51:40 +03:00
(let [points (into-array (generate-points 100))]
2016-04-09 20:32:15 +03:00
(k/create2d points)
(js/console.timeEnd "init:10000")))
2016-04-07 22:51:40 +03:00
2016-04-09 20:32:15 +03:00
(defn bench-init-160000
2016-04-07 22:51:40 +03:00
[]
2016-04-09 20:32:15 +03:00
(js/console.time "init:160000")
(let [points (into-array (generate-points 400))]
(k/create2d points)
(js/console.timeEnd "init:160000")))
2016-04-07 22:51:40 +03:00
(defn bench-init
[]
(bench-init-100)
2016-04-09 20:32:15 +03:00
(bench-init-10000)
(bench-init-160000))
2016-04-07 22:51:40 +03:00
2016-04-09 20:32:15 +03:00
(defn bench-knn-160000
2016-04-07 22:51:40 +03:00
[]
2016-04-09 20:32:15 +03:00
(let [tree (-> (into-array (generate-points 400))
(k/create2d))]
2016-04-07 22:51:40 +03:00
(dotimes [i 100]
2016-04-09 20:32:15 +03:00
(js/console.time "knn:160000")
(let [pt #js [(rand-int 400)
(rand-int 400)]]
(.nearest tree pt 2))
(js/console.timeEnd "knn:160000"))))
2016-04-07 22:51:40 +03:00
2016-04-09 20:32:15 +03:00
(defn bench-knn-360000
2016-04-07 22:51:40 +03:00
[]
2016-04-09 20:32:15 +03:00
(let [tree (-> (into-array (generate-points 600))
(k/create2d))]
2016-04-07 22:51:40 +03:00
(dotimes [i 100]
2016-04-09 20:32:15 +03:00
(js/console.time "knn:360000")
(let [pt #js [(rand-int 600)
(rand-int 600)]]
(.nearest tree pt 2))
(js/console.timeEnd "knn:360000"))))
2016-04-07 22:51:40 +03:00
(defn bench-knn
[]
2016-04-09 20:32:15 +03:00
(bench-knn-160000)
(bench-knn-360000))
2016-04-07 22:51:40 +03:00
(defn main
[& [type]]
2016-04-09 20:32:15 +03:00
(bench-init)
(bench-knn)
#_(cond
2016-04-07 22:51:40 +03:00
(= type "init")
(bench-init)
(= type "knn")
(bench-knn)
:else
(println "not implemented")))
(set! *main-cli-fn* main)