问题
这类代码可能会导致内存溢出
`
(-> gen/boolean
gen/vector
gen/vector
gen/vector
gen/vector
gen/vector
gen/vector
gen/generate)
`
建议的解决方案
减少生成集合元素时的大小。
- 这应该适用于{{gen/tuple}}吗?对于具有固定大小的{{gen/vector}}又如何?
-- 我目前认为不应该对{{gen/tuple}}这样做,但应该对{{gen/vector}}这样做
- 我们应该盲目地减少大小,还是它基于预期元素的个数(例如,除以预期元素的个数)?对于{{distinct}}集合生成器,预测元素数量是困难的。
另一种方法
假设在生成集合时会跟踪消耗了多少随机性,并在达到限制后强制其变得小。
对于test.check,这种方法可能很困难,但也许并非不可能。
一个想法是让生成器返回除玫瑰树之外,指示使用了多少比特熵的数字(以及可能另一个指示它们可能消耗的{{最小}}量熵的数字)。