我想用Quarkus Optaplanner应用程序进行高级基准测试。实施和运行它的最佳方式是什么?
当浏览Optaplanner的“旧”示例时,它们都实现了基准测试(在本视频中,有一个关于Optaplanner与Quarkus的演示,但基准测试是通过旧示例显示的)。我使用Quarkus构建了我的优化求解器,我想知道如何在这里实现基准测试。我的输入数据写在JSON文件中,我想尝试不同的求解器配置。
这是缺少的功能,我们正在处理它,所以你可以直接删除一个benchmarkConfig。src/test/resources中的xml文件,可能没有任何entityClass etc信息,甚至根本没有配置xml文件,而且可以正常工作。
我相信它会在8.5或8.6秒后着陆。
解决方法
同时,这也起到了作用:
// This needs to be in src/main/java, because src/test/java doesn't work
// TODO move this to src/test/java after https://issues.redhat.com/browse/PLANNER-2341
@QuarkusMain(name = "benchmark")
public class VaccinationScheduleBenchmark implements QuarkusApplication {
public static void main(String[] args) {
Quarkus.run(VaccinationScheduleBenchmark.class, args);
}
@Inject
ObjectMapper objectMapper;
@Override
public int run(String... args) {
generateDemoFile(5, 25, 0.0);
generateDemoFile(10, 50, 0.0);
generateDemoFile(10, 50, 0.3);
generateDemoFile(25, 500, 0.0);
generateDemoFile(50, 2000, 0.0);
generateDemoFile(50, 2000, 0.3);
// The solverBenchmarkConfig.xml explicitly mentions the entityClass, etc :(
PlannerBenchmarkFactory benchmarkFactory = PlannerBenchmarkFactory.createFromXmlResource("solverBenchmarkConfig.xml");
benchmarkFactory.buildPlannerBenchmark()
.benchmarkAndShowReportInBrowser();
return 0;
}
private void generateDemoFile(int vaccinationCenterCount, int totalBoothCount, double pinnedAppointmentRatio) {
File file = new File("local/input/" + vaccinationCenterCount + "vc-" + totalBoothCount + "booths"
+ (pinnedAppointmentRatio > 0.0 ? "-" + pinnedAppointmentRatio + "pinned" : "") + ".json");
if (!file.exists()) {
DemoDataGenerator demoDataGenerator = new DemoDataGenerator(33.40, 34.10, -84.90, -83.90);
VaccinationSchedule schedule = demoDataGenerator.generate(vaccinationCenterCount, totalBoothCount, pinnedAppointmentRatio);
try {
objectMapper.writeValue(file, schedule);
} catch (IOException e) {
throw new IllegalArgumentException("Failed writing file (" + file + ").", e);
}
}
}
}
从 Go 1.7 开始,引入了一个新特性:子测试,又叫 命名测试(named tests),它意味着您现在可以拥有嵌套测试,这对于自定义(和过滤)给定测试的示例非常有用。 T 和 B 的 Run 方法允许定义子单元测试和子基准测试,而不必为每个子测试和子基准定义单独的函数。这使得可以使用 Table-Driven 的基准测试和创建层级测试。它还提供了一种共享通用 setup 和 tear-down
11.4. 基准测试 基准测试是测量一个程序在固定工作负载下的性能。在Go语言中,基准测试函数和普通测试函数写法类似,但是以Benchmark为前缀名,并且带有一个*testing.B类型的参数;*testing.B参数除了提供和*testing.T类似的方法,还有额外一些和性能测量相关的方法。它还提供了一个整数N,用于指定操作执行的循环次数。 下面是IsPalindrome函数的基准测试,其中循
GoCPPLua (JIT) 策略执行的负载在model_b_test.go中进行基准测试。 测试是: 英特尔 酷睿 i7-6700HQ CPU @ 2.60GHz, 2601 Mhz, 4 核, 8 处理器 go test -bench= -benchmem 的测试结果如下 (op = 一次 Enforce() 调用, ms = 毫秒, KB = 千字节): 测试用例 规则大小 时间开销 (m
我正在使用内置的 在编译到Quarkus本机应用程序之前,这一切都很好,现在我从Optaplanner枚举中得到了反射问题: 我可以通过在调用,但感觉这些反射注册不应该是手动步骤。目前我在,但我猜还有很多枚举要添加到这个列表中。。。真的应该这么复杂吗?我正在使用Quarkus Optaplanner依赖项
These benchmarks were designed to measure Javascript running time for Mithril in comparison with other popular Javascript MVC frameworks. Javascript running time is significant because the gzipped siz
https://github.com/17koa/koa-benchmark 比较koa和koa2和express性能 Prerequisites for OSX brew install wrk wrk原理 命令行操作 $ wrk -t8 -c1000 -d10 http://127.0.0.1:3000 Test 首次测试,需要安装依赖,会比较慢 make all 不安装依赖,重复测试