我正在考虑使用大量的gensyms来区分我正在构建的系统中的对象(如erlang中的refs)。
创建大量的gensyms后,我是否应该遇到系统限制?
供参考,我正在使用SBCL。
答案 0 :(得分:2)
不同的实现使用不同的内存量。从仅测试gensym
使用的字节数来看,它取决于您传递的参数以及前几轮的唯一性。
如果你有一个总是将固定数量的字符串传递给gensym
的宏,它将使用每个0.5-1.5kB。对于每个连续使用相同的参数,其下降到65-150字节左右。
我让它做了65个字节的gensyms一段时间并且远远超过40亿,但是我不知道这是否符合条件,因为"大"很暧昧。