首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >限制java类的内存使用

限制java类的内存使用
EN

Stack Overflow用户
提问于 2011-06-03 19:16:24
回答 2查看 1.2K关注 0票数 2

我正在编写一个java类,它将与java MOA框架一起运行。这个类具有聚集点流的函数。此类由MOA应用程序调用。我想限制这个类的总内存(至少堆上使用的内存,可以排除堆栈内存)的使用(不包括MOA应用程序使用的内存)。

有可能吗?我希望这个类被MOA应用程序实例化和调用。我首先运行MOA应用程序,然后选择从GUI运行myclass来执行集群。由于这个原因,像-Xmx这样的JVM选项对我不起作用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-03 19:33:28

您可以在类中嵌入逻辑,以每隔一段时间检查Runtime.freeMemory()和Runtime.maxMemory(),并在接近限制时采取措施(刷新缓存等)。有点“可疑”,因为不同的平台报告堆统计数据的方式不同。

您还可以将SoftReference方案用于某些“可选”存储。然后,如果GC需要堆,它将删除对象。(虽然这个计划是用大锤子敲打蚊子。)

当然,您也可以简单地计算对象分配的数量。

票数 3
EN

Stack Overflow用户

发布于 2011-06-03 19:18:33

您只能限制JVM的全局内存使用。

要限制类的使用,需要启动另一个JVM并在新的JVM中使用该类。

但是,通常最好修复代码,这样类就不会使用太多内存。;)

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

https://stackoverflow.com/questions/6226407

复制
相关文章

相似问题

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