AviatorEvaluator.EVAL还是AviatorEvaluator.COMPILE?

AviatorEvaluator 提供了两种主要的方法来执行 Aviator 表达式:AviatorEvaluator.EVAL 和 AviatorEvaluator.COMPILE。它们有不同的用途:

  1. AviatorEvaluator.EVAL:

    • 这个方法用于直接执行 Aviator 表达式,并返回表达式的计算结果。

    • 适用于一次性的简单表达式计算,不需要多次执行相同的表达式。

    • 示例代码:

       
    • String expression = "1 + 2 * 3";
      Object result = AviatorEvaluator.execute(expression);
      

       

  2. AviatorEvaluator.COMPILE:

    • 这个方法用于将 Aviator 表达式编译成可重复执行的表达式对象,以提高性能。

    • 适用于需要多次执行相同表达式的情况,例如在循环中多次计算相同的表达式。

    • 示例代码:

    • String expression = "1 + 2 * 3";
      Expression compiledExpression = AviatorEvaluator.compile(expression);
      
      // 在需要计算的地方多次执行编译后的表达式
      Object result1 = compiledExpression.execute();
      Object result2 = compiledExpression.execute();
      

       

    •  

      总之,如果您只需要执行一个简单的 Aviator 表达式一次,可以使用 AviatorEvaluator.EVAL 方法。但如果您需要多次执行相同的表达式以提高性能,可以首先使用 AviatorEvaluator.COMPILE 方法将表达式编译成可执行对象,然后在需要时多次执行编译后的对象。这将减少表达式的解析和编译开销。
 
 


posted @ 2023-09-05 08:29  锐洋智能  阅读(194)  评论(0编辑  收藏  举报