Мне интересно, какой лучший способ реализовать счетчики производительности в Clojure для конкретной задачи, которая выполняется одновременно.Счетчик производительности для Clojure (с использованием core.async)
я обычно в конечном итоге иметь что-то вроде этого:
(defn -main [& args]
(let [c (async/chan)]
(doseq [_ (range 50)]
(async/thread
(async/>!! c
(doseq [r (chunk-of-work)]
(println r)
(doall (pmap #(work %) r))))
)
)
)
(while true
(async/<!! c))
)
)
Что бы лучший способ подсчета, сколько сообщений я получаю через канал каждый второй? Код имеет отступы для лучшей читаемости.