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)
上一篇 2025年9月15日 下午12:01
下一篇 2025年9月15日 下午12:22


相关推荐

  • Android实战——ShareSDk的使用,实现一键分享微信好友、朋友圈、QQ

    Android实战——ShareSDk的使用,实现一键分享微信好友、朋友圈、QQShareSDk的使用,实现一键分享微信好友、朋友圈、QQ事先说明:ShareSDK默认QQ可以分享,微信分享则需要在微信的开放平台上认证并申请应用填入对应信息即可微信认证和申请应用涉及到打包和签名APK,请大家自行查询相关资料进行操作关于ShareSDK的开发,参考ShareSDK官网为准欢迎关注CSDN博客:Hensen_的个人主

    2022年5月2日
    34
  • webstorm 格式化代码及常用快捷键 

    webstorm 格式化代码及常用快捷键 webstorm格式化代码快捷键centOS下Ctrl+Shift+lwindows下Ctrl+Alt+lmac下Option+Command+l查找/代替快捷键说明ctrl+shift+N通过文件名快速查找工程内的文件(必记)ctrl+shift+alt+N通过一个字符快速查找位置(必记)ctrl+F在文件内快速查找代码F3查找下一个shift+F3查找上一个ctrl+R文件内代码替换c…

    2022年6月11日
    185
  • IP-SAN和FC-SAN存储的区别

    IP-SAN和FC-SAN存储的区别SAN 存储 nbsp 存储区域网络 Storage nbsp Area nbsp Network 存储区域网络 StorageAreaN 简称 SAN 采用光纤通道 FibreChannel 技术 通过光纤通道交换机连接存储阵列和服务器主机 建立专用于数据存储的区域网络 SAN 结构有两种 IPSAN 与 FCSAN IPSAN IPSAN 是在 SAN 后产生的 SAN 默认指 FCSAN 以光纤通道构建存

    2026年3月18日
    2
  • Maven详细安装教程

    Maven详细安装教程一 安装 apache 官网下载需要的版本 然后解压缩 解压路径尽量不要有空格和中文 Maven DownloadApac maven apache org download cgi 二 配置环境变量新建系统变量变量名 MAVEN HOME 值 你解压的路径 eg D xxx apache maven 3 8 4 编辑系统变量 Path 打开 gt 新建 gt 路径为 解压缩文件的路径到 bin 目录 eg D xxx apac

    2026年3月17日
    2
  • pycharm2021.5 激活码[在线序列号]「建议收藏」

    pycharm2021.5 激活码[在线序列号],https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    96
  • 以树状结构输出计算机某个指定文件夹下的所有的文件和子文件夹名称

    以树状结构输出计算机某个指定文件夹下的所有的文件和子文件夹名称

    2021年7月17日
    74

发表回复

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

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