欢迎!请查看关于页面以了解更多关于如何使用本网站的信息。
评论者:jare
此外,s/complexity可能应该为每个节点(spec元素)设置一个超时时间(mb可配置),因为它主要是一个调试/性能分析工具。
s/complexity
评论者:gfredericks
这里的“尝试”是什么意思?它只适用于{{gen/such-that}}生成器吗?
是的,在这种情况下,指的是规范。生成器需要重试多少次才能满足规范。
我刚刚注意到这个{{:time-ms}}属性,它可能不仅仅适用于{{such-that}}。
我同意,能够轻松地调试生成器的性能是有用的,但我认为这种方法如何应用于一些组合器(如{{gen/fmap}}和{{gen/bind}})并不是显而易见的。考虑一个更具体的建议,其中包括这类案例的详细信息会更容易一些。
bq.但我认为这种方法如何应用于gen/fmap之类的组合器并不明显
元数据不应从函数内部获取,该函数应用了{{gen/fmap}}。相反,函数内部花费的时间和其它性能统计信息应与{{gen/fmap}}输入的统计信息关联,然后与输出一起返回。这样数据就会在嵌套{{gen/}}调用之间通过上下文传递。
bq.元数据不应该从调用{{gen/fmap}}的函数内部获取
或者您可以允许查看输入统计信息,但不能更改它。对此不太确定。可能过于复杂。
例如,假设我有的
`(def g1 ...)
`
(def g2 (gen/fmap f g1)) `
当我从 {{g2}} 生成一个值时,我会得到什么样的信息?会是关于 {{g1}} 的,关于 {{f}} 的,还是关于两者的某种组合?
(链接:~JAre) 我认为您的评论权限已经修复。
好吧,我可以看到这可能是一个明确定义的概念。但这需要大量的工作,而且我想要确保没有重大的性能差异。如果有,我们可能想要一种默认关闭它的方法,并确保即使在关闭的情况下也没有性能损失。
是的,现在工作了。谢谢。