gpt4 book ai didi

java - Spring是否提供了一个类来衡量迭代代码的性能?

转载 作者:搜寻专家 更新时间:2023-11-01 03:54:56 26 4
gpt4 key购买 nike

我需要衡量应用程序特定部分的性能。为了计算这些度量,我使用了 Spring StopWatch类(class)。在一个方法中,有一个循环,我需要在其中测量每次迭代的执行情况。

对于循环部分,我想要的是有一个计数器,以及最小/最大/平均值。不幸的是,Spring StopWatch 类没有提供这样的功能。

例如下面的代码:

StopWatch watch = new StopWatch("foo");
watch.start("First process");
doSomething();
watch.stop();
for (int i = 0; i < 10; i++) {
watch.start("loop");
doAnotherThing();
watch.stop();
}
System.out.println(watch.prettyPrint());

将输出:

StopWatch 'foo': running time (millis) = 1469
-----------------------------------------
ms % Task name
-----------------------------------------
01000 068% First process
00078 005% loop
00000 000% loop
00016 001% loop
00047 003% loop
00015 001% loop
00047 003% loop
00094 006% loop
00000 000% loop
00109 007% loop
00063 004% loop

我想要的是:

StopWatch 'foo': running time (millis) = 1469
-----------------------------------------
ms % Task name
-----------------------------------------
01000 068% First process
00469 032% loop | min: 0 ; max: 109 ; average: 47 ; count: 10

有没有办法使用 Spring 实现这一点?

ps:我知道perf4j将允许这样做,但如果我可以避免添加新库,那就太好了......

最佳答案

我不知道 Spring 中有任何这样的类

如果您不想添加 Perf4J,我会封装到您自己的类中。

一般的统计类(class)是一件很方便的事情。只要确保它是线程安全的即可。

关于java - Spring是否提供了一个类来衡量迭代代码的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10932230/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com