请在2024 Clojure 状态调查! 中分享您的想法。

欢迎!请参阅关于 页以了解更多关于此功能的信息。

0
tools.trace

我想建议向 tools.trace 添加几个功能

  • 使用多个特征来限制跟踪的能力

     *  Number of messages logged.
    
    • 被调用的次数。
    • 生成的输出大小
    • 在一定时间段内记录的次数
  • 只有**特定**调用可以跟踪
    跟踪具有特定参数值的函数的调用

4 答案

0

评论者:aeronotix

在我的 GitHub 分支中有此功能的实现: https://github.com/AeroNotix/tools.trace/tree/alf-implement-throttled-tracing

0

评论者:lprefontaine

我觉得这个特性很有趣,但我看了实现,发现它很复杂。
我想简化它。计数可以随时进行,即使没有开启节流功能。

我可能希望在 do-trace-var* 中根据是否需要节流功能来传递不同的包装器,而不是在每次运行时都测试节流功能。

我可能还想保留以前公开的现有函数。

顶级调用可能比 trace-opts 更具体。
我会考虑这个名字。也许让顶级调用更明确会使事情更清晰、更容易实现,同时保留向后兼容性。

你能解释一下为什么你需要一个 dosync 在节流器中吗?

我已经反复阅读代码三次或四次,但仍然无法理解为什么需要一个简单的原子。
在这里,swap! 功能无法完成任务。

所有引用都位于节流函数的局部作用域中,从我的理解来看,并没有东西泄露出去
(不过现在很晚了...:)

Luc P.

0
by

评论者:aeronotix

dosync 用于处理当函数被多个线程调用时的情况。

0
by
参考: https://clojure.atlassian.net/browse/TTRACE-10(由 alex+import 汇报)
...