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 更具体。
我会想想名字。也许更具体的顶层调用可以使事物更清晰、更易于实现,同时保留向后兼容。

你能说明一下为什么你需要 throtter 中的 dosync 吗?

我重新阅读了代码三次/四次,但无法理解为什么一个简单的原子(atom)和 swap! 无法完成这项工作。

您的引用都在限流函数的局部作用域内,我没有发现任何泄漏。
见.(但是很晚了...:)

Luc P.

0 投票

评论者:aeronotix

dosync 是在函数由多个线程调用时使用的。

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