java fel api_Java表达式计算-Fel

java fel api_Java表达式计算-FelFel 是支持表达式计算的一个库 java Fel 支持解释执行和编译执行 可以根据性能要求选择执行方式 下面给出示例和性能测试数据 packagedatag importjava util Random importcom greenpineyu fel Expression importcom greenpineyu fel FelEngine importcom greenpi

Fel是支持表达式计算的一个库(java)。

Fel支持解释执行和编译执行,可以根据性能要求选择执行方式。

下面给出示例和性能测试数据:

package datagene;

import java.util.Random;

import com.greenpineyu.fel.Expression;

import com.greenpineyu.fel.FelEngine;

import com.greenpineyu.fel.FelEngineImpl;

import com.greenpineyu.fel.context.FelContext;

import com.greenpineyu.fel.parser.FelNode;

public class Expr {

public static void main(String[] args) {

Random random = new Random();

Object result = null;

long time = System.nanoTime();

for(int i = 0; i < ; i++) {

result = random.nextInt(1000) * random.nextInt(1000) +

random.nextInt(1000);

}

System.out.println(((float)(System.nanoTime() – time) / ) + “ms”);

FelEngine fel1 = new FelEngineImpl();

FelContext ctx1 = fel1.getContext();

time = System.nanoTime();

for(int i = 0; i < ; i++) {

ctx1.set(“a”, random.nextInt(1000));

ctx1.set(“b”, random.nextInt(1000));

ctx1.set(“c”, random.nextInt(1000));

result = fel1.eval(“a * b + c”);

}

System.out.println(((float)(System.nanoTime() – time) / ) + “ms”);

FelEngine fel2 = new FelEngineImpl();

FelNode node = fel2.parse(“a * b + c”);

FelContext ctx2 = fel2.getContext();

time = System.nanoTime();

for(int i = 0; i < ; i++) {

ctx2.set(“a”, random.nextInt(1000));

ctx2.set(“b”, random.nextInt(1000));

ctx2.set(“c”, random.nextInt(1000));

result = node.eval(ctx2);

}

System.out.println(((float)(System.nanoTime() – time) / ) + “ms”);

FelEngine fel3 = new FelEngineImpl();

Expression exp = fel3.parse(“a * b + c”);

FelContext ctx3 = fel3.getContext();

time = System.nanoTime();

for(int i = 0; i < ; i++) {

ctx3.set(“a”, random.nextInt(1000));

ctx3.set(“b”, random.nextInt(1000));

ctx3.set(“c”, random.nextInt(1000));

result = exp.eval(ctx3);

}

System.out.println(((float)(System.nanoTime() – time) / ) + “ms”);

}

}

输出:

035bfbae064a04c9ebd728e1c3f5c6fd.png

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232775.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • .net 读书笔记

    好书不能只读一遍,这两天又翻看了一遍《你必须知道的.NET》,重温了下基础,重温了下经典,简单记录了下来。内存分配:CLR管理内存的区域,主要有三块,分别为:线程的堆栈,用于分配值类型实例。堆栈

    2021年12月23日
    43
  • Kafka SCRAM和PLAIN实战

    Kafka SCRAM和PLAIN实战目前 KafkaACL 支持多种权限认证 今天笔者给大家介绍一下 SCRAM 和 PLAIN 的权限认证 验证环境如下 JDK 1 8Kafka 2 3 0KafkaEagle 1 3 8

    2025年11月13日
    1
  • 新利EagleEye信息平台保障系统(服务器监控系统)[摘]

    新利EagleEye信息平台保障系统(服务器监控系统)[摘]新利EagleEye信息平台保障系统(服务器监控系统)1 系统概述  新利EagleEye信息平台保障系统(服务器监控系统)是一款集服务器、业务应用和网络设备、环境动力的监控和管理于一体的集中式、跨平台的信息运营平台保障管理平台系统。系统实现监测的自动化和故障预警智能化管理,故障准确定位和综合诊断IT系统异常的原因,最大限度地保障IT信息系统的正常运行,减少运维部门的运维成本,实现信息维护服

    2022年8月16日
    8
  • nvcat premium 15 激活码_在线激活

    (nvcat premium 15 激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月27日
    113
  • Google Buzz 里 90% 的内容都是 “非人类”「建议收藏」

    Google Buzz 里 90% 的内容都是 “非人类”「建议收藏」距GoogleBuzz发布还不到10周,尽管Google一直在改进它,但似乎人们还是没有陷入Google的社交圈子。来自PostRank的统计,有90%的GoogleBuzz都是机器人发出来的,其中最多的是从twitter同步过来的内容,占到62%还多,而来自feeds的也有26%多,尽有不到11%的内容是真实的人肉发出来的。也就是说,GoogleBuzz的用户们还是习…

    2022年10月15日
    2
  • python字符串中某个字符修改_Python实现字符串中某个字母的替代功能

    python字符串中某个字符修改_Python实现字符串中某个字母的替代功能今晚想实现这样一个功能:将输入字符串中的字母“i”变成字母“p”。当时想的很简单,直接用for循环遍历,然后替代,出问题的代码如下:name=input(‘随便输入一堆字符吧…’)#name=list(name)name=””.join(name)j=0foriinrange(len(name)):ifname[i]==’i’:name[i]=’p’j=…

    2022年5月2日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号