lisp - 创建大量的gensym是否合理?

标签 lisp common-lisp symbols sbcl

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

创建大量 gensym 后是否会遇到系统限制?

作为引用,我正在使用 SBCL。

最佳答案

不同的实现使用不同的内存量。仅测试 gensym 使用的字节数,它取决于您传递给它的参数以及它与前几轮的独特性。..

如果您有一个始终将固定数量的字符串传递给 gensym 的宏,则每个宏将使用 0,5-1,5kB。对于每次连续使用相同的参数,其长度减少到 65-150 字节左右。

我让它制作了一段时间的 65 字节 gensym,并将其停止在 40 亿以上,但我不知道这是否符合条件,因为“大”是不明确的。

关于lisp - 创建大量的gensym是否合理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45109779/

相关文章:

xml - 我按照s-xml主页的例子在Lisp中使用 "print-xml"时出现错误

lisp - 在结构的构造函数中指定多个选项?

character-encoding - 如何处理 Common Lisp (SBCL) 中的重音符号?

lisp - 为什么 uninterned 符号用于 Common Lisp 中的包名和导出?

continuous-integration - 如何清理符号存储?

lisp - 计算 lisp 中前 n 个数字的总和

lisp - 是否有实现条件重启系统的书籍/指南

ruby - 如何在没有 RuntimeError : Can't modify frozen Symbol? 的情况下修改 Ruby 中的符号

lisp - 如何将字符串解析为列表结构?

python - 请为非常喜欢 LISP 的人提供有关 Ruby 与 Python 的建议