首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Clojure不会占用太多的perm-gen空间吗?

Clojure不会占用太多的perm-gen空间吗?
EN

Stack Overflow用户
提问于 2011-02-23 16:14:45
回答 1查看 763关注 0票数 11

我刚接触Cojure,但我读到在使用AOT编译时,会为每个函数生成一个类。这不是意味着需要大量占用perm-gen空间的类吗?这有什么问题吗?如果不使用AOT编译,但字节码是动态生成的,该怎么办?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-23 17:14:50

我认为类是从磁盘还是内存加载的,或者是从PermGen空间加载的,这都无关紧要。

但是,请注意,问题可能并不像您想象的那么糟糕:每个函数都编译一次。特别是,你可以在这里或那里看到的匿名函数,“动态生成”只编译一次,每次调用它们只会导致创建这些类的新实例(需要一个实例来存储词法上下文)。

因此,下面的代码导致创建两个类(一个用于create-fn,一个用于lambda-fn),无论在运行时对create-fn的调用次数是多少:

(defn create-fn [n] (fn lambda-fn [x] (add n x)))

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5088428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档