Skip to content

多次编译导致oom #481

@Thintime

Description

@Thintime

aviator 版本 5.3.1,jdk11
代码如下

String express = "let a=math.pow((math.abs(c)+a*10)-100,2)+0.2;if(b==45){return a;}else {return -0.7;}";

    while (true) {
        Expression expression = AviatorEvaluator.compile(express);
        Map<String, Object> env = new HashMap<>();
        env.put("a", 100.3);
        env.put("b", 45);
        env.put("c", -199.100);
        Object result = expression.execute(env);
    }

这个程序执行最终会导致 OutOfMemoryError: Compressed class space

但是我看文档是说expression没有引用之后会触发gc卸载内部类,这个错误是啥原因导致的呢

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions