Clojure的性能计数器(使用core.async)

时间:2014-11-10 16:41:37

标签: clojure core.async

我想知道在Clojure中为同时运行的特定任务实现性能计数器的最佳方法是什么。

我通常最终得到这样的东西:

(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))
  )
)

计算每秒通过频道收到多少邮件的最佳方法是什么?代码缩进以提高可读性。

1 个答案:

答案 0 :(得分:1)

您是否考虑过ztellman's Narrator。这是

的一个包
  

“分析和汇总数据流”

有很多例子,包括一段时间内的消息率。

我还没有真正使用它,只记得阅读它的文档并且它有这种聚合内置。