[nop] Switch to faster enc/binding

This commit is contained in:
Peter Taoussanis 2024-03-16 16:22:01 +01:00
parent fb85a994b7
commit dfc52d6f87
4 changed files with 16 additions and 12 deletions

View file

@ -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:

View file

@ -5,9 +5,9 @@
<https://www.taoensso.com/telemere>"
{: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})

View file

@ -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}))]

View file

@ -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*)