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

欢迎!有关如何使用本页面的更多信息,请参阅关于页面。

0
tools.trace

我希望建议在 tools.trace 中添加几个功能

  • 能够使用几个特征来限制跟踪

     *  Number of messages logged.
    
    • 调用的次数。
    • 输出的大小
    • 在特定时间段内记录的次数
  • 只跟踪某些调用
    跟踪传递特定参数值的函数的调用

4 答案

0

评论人:aeronotix

在我的分支https://github.com/AeroNotIX/tools.trace/tree/alf-implement-throttled-tracing上实现了大部分功能。

0

评论人:lprefontaine

我觉得这个特性很有趣,但我读到了它的实现,发现它很复杂。
我想简化它。计数可以在不启用节流功能的情况下始终进行。

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

我还可能想要保留过去已公开的现有函数。

顶层调用可以比 trace-opts 更具体。
我在想名字。也许顶层调用更明确将使事物更清晰、更容易实现,同时保留向后兼容性。

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

我反复阅读了代码三次/四次,但我无法理解为什么使用swap!这样的简单原子操作在这里不起作用。

所有引用都在throttler函数的局部作用域内,据我所见没有任何泄漏。
不过,确实很晚了...:(

Luc P.

0

评论人:aeronotix

dosync是用于当函数从多个线程调用时。

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