aviatorscript
aviatorscript copied to clipboard
方案假设是否可行?
如果系统会产生大量的表达式,就算放到缓存中,重启服务器后依然需要重新编译,现在有一个假设:能不能把编译生成的类保存起来,再次执行表达式时就找到对应的类传入参数进行执行?
理论上是可行,不过需要对 aviator 做出如下改造:
- 对每个表达式生成唯一的名字,可以考虑 md5,目前是
Script_timestamp.class
的命名。 - 需要处理下嵌套类关系。
关于您说的第2点:我现在只能从maven上下载一个2.3.3版本的源码,我跟了下,在编译后从外边没有拿到class类;现在的版本我们从外边编译调用的地方拿不到编译的class类是吗
你拿到 Expression 对象,就可以拿到 class 对象了。
@killme2008 如果用在服务治理中,如果治理规则不断更新,class不断新增,担心内存会有压力,是否有清理的过程?