首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当涉及到内存占用时,Clojure的表现如何?

当涉及到内存占用时,Clojure的表现如何?
EN

Stack Overflow用户
提问于 2010-10-30 19:14:52
回答 2查看 3.4K关注 0票数 12

至于背景知识,我正在用Clojure编写web服务(本例中使用Compojure )。我不担心性能,这似乎已经足够好了,我总是可以启动更多的upp服务器实例。

即使Clojure实现比相应的Java实现慢2-10倍,我也总是希望在原始性能之前有一个更干净的代码。

当然,这取决于您在做什么,但我想知道当涉及到Java与Clojure中任何类型的长期运行的服务器解决方案的内存占用时,您是否有任何实际经验?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-30 20:38:10

我已经有一个基于active Compojure的web服务器运行了四个多月,没有任何故障(也就是没有OutOfMemoryExceptions或者类似的东西...)。因此,Clojure在长时间运行的服务器应用程序中似乎相当健壮。

web服务器在亚马逊EC2上运行,运行时间约为。230mb内存占用。

的确,Clojure相对需要内存-除了通常的JVM开销之外,它还会做很多事情,比如在后台动态生成类,这会占用内存。它还会生成许多临时对象(例如,序列对象的构造),并依赖GC来清理。

这实际上是Clojure的一个设计决策--由于内存很便宜,而且现代垃圾收集性能非常好,Clojure倾向于相当自由地分配内存,以便最大限度地提高灵活性和性能。

票数 13
EN

Stack Overflow用户

发布于 2010-10-31 22:14:47

另一个问题是JVM中的一个简单的设计缺陷:它使用UTF-16作为其内部字符串编码,因此在以美国为中心的数据集中,所有字符串占用的内存是应有的两倍。

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

https://stackoverflow.com/questions/4058430

复制
相关文章

相似问题

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