OSGi 内存管理
2022-09-03 01:36:40
我有关于OSGi内存管理的理论问题。
假设我们有一些OSGi容器(例如Felix),假设我创建了一些内存泄漏的捆绑包。
以下是我的一些问题:
- 有没有办法限制此“失败”捆绑包的内存消耗?例如,如果它超过内存限制 - OSGi容器会给我发送电子邮件,卸载它还是其他什么?
- 捆绑包“A”中的内存消耗如何影响捆绑包“B”。例如,如果“A”导致内存不足错误,它会炸毁整个OSGi容器吗?
我有关于OSGi内存管理的理论问题。
假设我们有一些OSGi容器(例如Felix),假设我创建了一些内存泄漏的捆绑包。
以下是我的一些问题:
完整的 OSGi 框架在单个虚拟机中运行。只是每个捆绑包都由不同的类装入器装入。但是所有捆绑包共享相同的堆,如果一个捆绑包泄漏内存,这将影响整个基于OSGi的应用程序。
所以,是的,如果一个OutOfMemoryError是由一个捆绑引起的,那么整个容器就会被“炸毁”。
(顺便说一句:如果有人将捆绑包放入您的容器中,然后整个容器再次停止而不会发出警告 - 捆绑包不会像某些“jvm中的虚拟机”那样存在于孤立的上下文中)System.exit()