You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache Ignite自定义Yardstick Benchmark编译后无法生效的问题咨询

问题描述

为开展性能评估,采用Apache Ignite的Yardstick Benchmark工具,修改了IgnitePutGetBenchmark.java源码并编译,但运行基准测试时修改未生效,具体操作如下:

  • 源码文件路径:$ vi ~/apache-ignite-2.14.0-bin/benchmarks/sources/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetBenchmark.java
  • 编译操作:$ cd ~/apache-ignite-2.14.0-bin/benchmarks/sources && mvn package(编译成功)
  • 生成的class文件路径:~/apache-ignite-2.14.0-bin/benchmarks/sources/target/classes/org/apache/ignite/yardstick/cache/IgnitePutGetBenchmark.class
  • 运行命令:$ bin/benchmark-run-all.sh config/benchmark-sample.properties,但修改的代码(如添加的println语句)未生效,仍执行默认版本。

咨询以下两个问题:

  1. 基准测试的正确编译方式;
  2. 如何运行已应用修改代码的基准测试。

解决方案

1. 基准测试的正确编译方式

编译时需确保将修改后的代码打包成可被基准测试脚本识别的jar包,具体步骤:

  • 进入基准测试源码目录:cd ~/apache-ignite-2.14.0-bin/benchmarks/sources
  • 执行Maven构建命令,清理旧编译产物并打包:mvn clean package
    • 执行完成后,会在target目录下生成包含修改后代码的jar文件(通常命名为ignite-yardstick-2.14.0.jar)

2. 运行修改后代码的基准测试

默认的benchmark-run-all.sh脚本会优先加载Ignite安装目录自带的基准测试jar,而非你编译的自定义版本,可通过以下两种方式解决:

方法一:替换原有基准测试jar

  • 找到Ignite安装目录中默认的基准测试jar,路径通常为:~/apache-ignite-2.14.0-bin/libs/ignite-yardstick-2.14.0.jar
  • 将你编译生成的jar(~/apache-ignite-2.14.0-bin/benchmarks/sources/target/ignite-yardstick-2.14.0.jar)复制并替换掉原有jar文件
  • 重新运行bin/benchmark-run-all.sh config/benchmark-sample.properties即可加载修改后的代码

方法二:调整脚本的类加载优先级

  • 编辑bin/benchmark-run-all.sh脚本,找到类路径(CLASSPATH)相关配置项
  • 将你编译生成的target/classes目录或自定义jar的路径添加到CLASSPATH的最前端,确保优先加载修改后的类
    • 示例修改:CLASSPATH=~/apache-ignite-2.14.0-bin/benchmarks/sources/target/classes:$CLASSPATH
  • 保存脚本后,重新执行基准测试命令即可

内容的提问来源于stack exchange,提问作者Yunkeuk Kim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 09:42:24