Java OSGi内存管理
我有一个关于OSGi内存管理的理论问题 假设我们有一些OSGi容器(例如Felix),假设我创建了一些内存泄漏的包 以下是我的一些问题:Java OSGi内存管理,java,osgi,apache-felix,Java,Osgi,Apache Felix,我有一个关于OSGi内存管理的理论问题 假设我们有一些OSGi容器(例如Felix),假设我创建了一些内存泄漏的包 以下是我的一些问题: 有没有办法限制内存 此“故障”的消耗量 捆例如,如果超过 内存限制–OSGi容器将 向我发送电子邮件、卸载或 还有别的吗 内存消耗是如何产生的 束“A”影响束“B”。对于 “A”导致内存不足错误的示例 它会炸毁整个OSGi吗 集装箱 完整的OSGi框架在单个虚拟机中运行。只是每个包都由不同的类加载器加载。但是所有包共享同一堆,如果一个包泄漏内存,这将影响整个基
完整的OSGi框架在单个虚拟机中运行。只是每个包都由不同的类加载器加载。但是所有包共享同一堆,如果一个包泄漏内存,这将影响整个基于OSGi的应用程序 因此,是的,如果一个包导致OutOfMemoryError,那么整个容器都会“爆炸”
(顺便说一句:如果有人将一个bundle放入您的容器中,该容器执行
System.exit()
,那么整个容器也会在没有警告的情况下停止-bundle不会像某些“jvm中的虚拟机”那样存在于孤立的上下文中)您可能还想检查一下这项研究:+1:不过,OSGi框架的权限层应该可以保护您免受对System.exit()
等方法的滥用调用。谢谢Andreas,这回答了我的问题。Andreas,您还没有回答问题1-您知道是否有办法限制捆绑包的内存吗?我怀疑这是可能的。我不知道有任何机制可以计算堆上对象集合的内存占用。