Javet
Javet copied to clipboard
在关闭JavetEnginePool的时候,警告还有对象没有被回收
- 在我手动对
V8Runtime进行close或者 对JavetEnginePool进行close的时候,控制台会警告我还有对象没被回收,我使用的v8Runtime.getGlobalObject().set('key', new Value())添加的对象, 当我使用断点进去警告的地方,我发现除了我手动添加的对象,还有一些不知道哪里来的对象,也没有被回收,就很奇怪,我在想有没有一个JavetEnginePool或者是v8Runtime提供的一个方法,可以直接销毁我手动添加的对象。 - 还有一个问题,我发现
JavetEnginePool是通过new出来的,当我没有关闭pool的时候,当我在使用enginePool.getEngine()获取一个新的engine的后,执行相同的代码,居然给我报错说是 定义的变量名称已经存在,我感觉这个应该不太合理,既然我都重新获取了engine,按理说应该进行上文隔离才对。所以我写的这种方式是错误的吗
I guess you misunderstood how a thread pool works.
I guess you misunderstood how a thread pool works.
好的,那我明白了,并且我也把pool加入了销毁的方法中, 但是:我想问一下,我手动设置v8Runtime.getGlobalObject().set("key","value"); 我已经在js代码执行完毕后,主动销毁了手动设置的object,但是控制台还是提示有12个object未被销毁,我在想是否有一个方法,在js代码执行完毕后,直接全部销毁所有的object,作为测试,我添加了很多操作,并且我在js中加入System.gc() 但是效果不是很明显,求指导
Please review the docs, best practices and unit test.