From 4d16f435dda9641eb8ae6c2099383d6f83af676e Mon Sep 17 00:00:00 2001 From: lread Date: Sat, 1 May 2021 16:09:00 -0400 Subject: [PATCH] First crack at exploring reported perf issues See https://github.com/weavejester/cljfmt/issues/226#issuecomment-830688654 --- cljfmt/deps.edn | 4 ++++ cljfmt/perf.clj | 21 +++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 cljfmt/deps.edn create mode 100644 cljfmt/perf.clj diff --git a/cljfmt/deps.edn b/cljfmt/deps.edn new file mode 100644 index 00000000..75940367 --- /dev/null +++ b/cljfmt/deps.edn @@ -0,0 +1,4 @@ +{:paths ["src" "resources"] + :deps {org.clojure/clojure {:mvn/version "1.10.3"} + rewrite-clj/rewrite-clj {:mvn/version "1.0.605-alpha" } + criterium/criterium {:mvn/version "0.4.6"}}} diff --git a/cljfmt/perf.clj b/cljfmt/perf.clj new file mode 100644 index 00000000..80c22c15 --- /dev/null +++ b/cljfmt/perf.clj @@ -0,0 +1,21 @@ +(ns perf + (:require [cljfmt.core :as cljfmt] + [criterium.core :as criterium] + [rewrite-clj.parser :as p])) + +(def sample1 "https://raw.githubusercontent.com/clojure-lsp/clojure-lsp/cd64d430d83cb068d4a0a011beeded3beb791201/src/clojure_lsp/handlers.clj") + +(defn -main [[test-id]] + (case test-id + "reformat-string" + (let [s (slurp sample1)] + (println "benchmarking reformat-string") + (criterium/with-progress-reporting (criterium/bench (cljfmt/reformat-string s) :verbose))) + + "reformat-form" + (let [s (slurp sample1) + n (p/parse-string-all s)] + (println "benchmarking reformat-form") + (criterium/with-progress-reporting (criterium/bench (cljfmt/reformat-form n) :verbose))))) + +(-main *command-line-args*)