aviatorscript icon indicating copy to clipboard operation
aviatorscript copied to clipboard

方案假设是否可行?

Open zhangwj0425 opened this issue 5 years ago • 4 comments

如果系统会产生大量的表达式,就算放到缓存中,重启服务器后依然需要重新编译,现在有一个假设:能不能把编译生成的类保存起来,再次执行表达式时就找到对应的类传入参数进行执行?

zhangwj0425 avatar Jun 21 '19 09:06 zhangwj0425

理论上是可行,不过需要对 aviator 做出如下改造:

  1. 对每个表达式生成唯一的名字,可以考虑 md5,目前是 Script_timestamp.class 的命名。
  2. 需要处理下嵌套类关系。

killme2008 avatar Jun 24 '19 03:06 killme2008

关于您说的第2点:我现在只能从maven上下载一个2.3.3版本的源码,我跟了下,在编译后从外边没有拿到class类;现在的版本我们从外边编译调用的地方拿不到编译的class类是吗

zhangwj0425 avatar Jun 24 '19 05:06 zhangwj0425

你拿到 Expression 对象,就可以拿到 class 对象了。

killme2008 avatar Jul 03 '19 13:07 killme2008

@killme2008 如果用在服务治理中,如果治理规则不断更新,class不断新增,担心内存会有压力,是否有清理的过程?

AJ-Liang avatar Jan 20 '20 07:01 AJ-Liang