创建大量的gensyms是否合理?

时间:2017-07-14 18:45:10

标签: lisp common-lisp symbols sbcl

我正在考虑使用大量的gensyms来区分我正在构建的系统中的对象(如erlang中的refs)。

创建大量的gensyms后,我是否应该遇到系统限制?

供参考,我正在使用SBCL。

1 个答案:

答案 0 :(得分:2)

不同的实现使用不同的内存量。从仅测试gensym使用的字节数来看,它取决于您传递的参数以及前几轮的唯一性。

如果你有一个总是将固定数量的字符串传递给gensym的宏,它将使用每个0.5-1.5kB。对于每个连续使用相同的参数,其下降到65-150字节左右。

我让它做了65个字节的gensyms一段时间并且远远超过40亿,但是我不知道这是否符合条件,因为"大"很暧昧。