From dfc52d6f8765a6c6e51bdac7d14869321c10da73 Mon Sep 17 00:00:00 2001 From: Peter Taoussanis Date: Sat, 16 Mar 2024 16:22:01 +0100 Subject: [PATCH] [nop] Switch to faster `enc/binding` --- README.md | 6 +++--- src/taoensso/telemere.cljc | 10 +++++----- src/taoensso/telemere/impl.cljc | 8 +++++--- src/taoensso/telemere/streams.clj | 4 +++- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 1ed5cfb..e7ea0f5 100644 --- a/README.md +++ b/README.md @@ -61,9 +61,9 @@ Telemere is **highly optimized** and offers terrific performance at any scale: | Compile-time filtering? | Runtime filtering? | Time? | Trace? | nsecs | :-: | :-: | :-: | :-: | --: | ✓ (elide) | - | - | - | 0 -| - | ✓ | - | - | 220 -| - | ✓ | ✓ | - | 300 -| - | ✓ | ✓ | ✓ | 730 +| - | ✓ | - | - | 200 +| - | ✓ | ✓ | - | 280 +| - | ✓ | ✓ | ✓ | 650 Measurements: diff --git a/src/taoensso/telemere.cljc b/src/taoensso/telemere.cljc index 68a3dd7..e0e0aab 100644 --- a/src/taoensso/telemere.cljc +++ b/src/taoensso/telemere.cljc @@ -5,9 +5,9 @@ " {:author "Peter Taoussanis (@ptaoussanis)"} - (:refer-clojure :exclude [newline]) + (:refer-clojure :exclude [binding newline]) (:require - [taoensso.encore :as enc :refer [have have?]] + [taoensso.encore :as enc :refer [binding have have?]] [taoensso.encore.signals :as sigs] [taoensso.telemere.impl :as impl] [taoensso.telemere.handlers :as handlers] @@ -351,13 +351,13 @@ (binding [impl/*sig-handlers* nil] - [(enc/qb 1e6 ; [9.26 16.85 187.3 202.7] + [(enc/qb 1e6 ; [10.4 17.06 195.42 200.34] (signal! {:level :info, :run nil, :elide? true}) (signal! {:level :info, :run nil, :allow? false}) (signal! {:level :info, :run nil, :allow? true }) (signal! {:level :info, :run nil})) - (enc/qb 1e6 ; [8.09 15.29 677.91 278.57 688.89] + (enc/qb 1e6 ; [8.1 15.35 647.82 279.67 682.1] (signal! {:level :info, :run "run", :elide? true}) (signal! {:level :info, :run "run", :allow? false}) (signal! {:level :info, :run "run", :allow? true }) @@ -365,7 +365,7 @@ (signal! {:level :info, :run "run"})) ;; For README "performance" table - (enc/qb [8 1e6] ; [9.23 220.27 300.83 726.07] + (enc/qb [8 1e6] ; [9.23 197.2 277.55 649.32] (signal! {:level :info, :elide? true}) (signal! {:level :info}) (signal! {:level :info, :run "run", :trace? false}) diff --git a/src/taoensso/telemere/impl.cljc b/src/taoensso/telemere/impl.cljc index f4b20c7..aec11d5 100644 --- a/src/taoensso/telemere/impl.cljc +++ b/src/taoensso/telemere/impl.cljc @@ -1,8 +1,10 @@ (ns ^:no-doc taoensso.telemere.impl "Private ns, implementation detail. Signal design shared by: Telemere, Tufte, Timbre." + + (:refer-clojure :exclude [binding]) (:require - [taoensso.encore :as enc :refer [have have?]] + [taoensso.encore :as enc :refer [binding have have?]] [taoensso.encore.signals :as sigs] #?(:clj [clj-commons.format.exceptions :as fmt-ex]) #?(:clj [clj-commons.ansi :as fmt-ansi]))) @@ -187,7 +189,7 @@ (do form)))) (comment - [(enc/qb 1e6 (with-tracing true :id1 :uid1 "form")) ; 302.2 + [(enc/qb 1e6 (with-tracing true :id1 :uid1 "form")) ; 257.5 (macroexpand '(with-tracing false :id1 :uid1 "form")) (macroexpand '(with-tracing true :id1 :uid1 "form"))]) @@ -657,7 +659,7 @@ (defn test-interop! [msg test-fn] (let [msg (str "Interop test: " msg " (" (enc/uuid-str) ")") [_ [signal]] - (binding [*rt-sig-filter* nil] ; without runtime filters + (binding [*rt-sig-filter* nil] ; Without runtime filters (-with-signals (fn [] (test-fn msg)) {:handle? false}))] diff --git a/src/taoensso/telemere/streams.clj b/src/taoensso/telemere/streams.clj index 4a16e7d..1e9e210 100644 --- a/src/taoensso/telemere/streams.clj +++ b/src/taoensso/telemere/streams.clj @@ -1,8 +1,10 @@ (ns ^:no-doc taoensso.telemere.streams "Private ns, implementation detail. Interop support: standard stream/s -> Telemere." + + (:refer-clojure :exclude [binding]) (:require - [taoensso.encore :as enc :refer [have have?]] + [taoensso.encore :as enc :refer [binding have have?]] [taoensso.telemere.impl :as impl])) (enc/defonce orig-*out* "Original `*out*` on ns load" *out*)