
脚本引擎
文章平均质量分 74
不恋水的雨
这个作者很懒,什么都没留下…
展开
-
Groovy大量计算导致oom的解决办法
最近在项目中遇到一个内存持续增长的问题,系统启动后内存使用原本很低,但是在系统运行的过程中,内存一直在慢慢的增加,最后机器发出了内存预警,查看使用的内存,短短一个月居然达到了8G。经过一系列排查,发现是大量调用groovy脚本计算导致的,使用visualVM监控jvm已加载的类数量:发现每次调用脚本,都会增加一个类,问题代码: public static ScriptEngine engine = new ScriptEngineManager().getEngineByName("原创 2022-05-24 11:45:44 · 1414 阅读 · 5 评论 -
java脚本引擎Groovy并发控制
ScriptEngine是线程安全的,自身没有线程问题,但是变量作用域(Bindings)存在线程问题。一般计算时,如果不考虑线程,都是使用的默认Bindings:通过源码可以看到,如果不指定Bindings,默认使用内置的Bindings。这就会导致多线程存在问题,一个线程的变量可能会被另一个线程覆盖掉,导致计算结果出错。所有为了保证不同线程变量作用域相互独立,可以根据线程号来创建B...原创 2020-01-03 17:26:59 · 1278 阅读 · 1 评论