别再用System

需求

=================================================================

有时需要记录程序执行时间,最简单就是打印当前时间与执行完时间的差值,缺点是:

  • 执行大量测试的话就很麻烦

  • 不直观

  • 如果想对执行的时间做进一步控制,则需要在程序中很多地方修改

于是 Spring提供了一个StopWatch类可以做类似任务执行时间控制,即封装了一个对开始时间,结束时间记录工具

案例

=================================================================

统计输出总耗时

import org.springframework.util.StopWatch;

public class SpringStopWatchExample {

public static void main (String[] args) throws InterruptedException {

StopWatch sw = new StopWatch();

sw.start();

//long task simulation

Thread.sleep(1000);

sw.stop();

System.out.print
ln(sw.getTotalTimeMillis());

}

}

输出最后一个任务的耗时


public class SpringStopWatchExample2 {

public static void main (String[] args) throws InterruptedException {

StopWatch sw = new StopWatch();

sw.start(“A”);//setting a task name

//long task simulation

Thread.sleep(1000);

sw.stop();

System.out.println(sw.getLastTaskTimeMillis());

}

}

以优雅的格式打出所有任务的耗时以及占比

==================================================================================

import org.springframework.util.StopWatch;

public class SpringStopWatchExample3 {

public static void main (String[] args) throws InterruptedException {

StopWatch sw = new StopWatch();

sw.start(“A”);

Thread.sleep(500);

sw.stop();

sw.start(“B”);

Thread.sleep(300);

sw.stop();

sw.start(“C”);

Thread.sleep(200);

sw.stop();

System.out.println(sw.prettyPrint());

}

}

序列服务输出耗时信息

=========================================================================

@Override

public long nextSeq(String name) {

StopWatch watch = new StopWatch();

watch.start(“单序列获取总消耗”);

long sequence = generator.generateId(name);

watch.stop();

logger.info(watch.prettyPrint());

return sequence;

}

getTotalTimeSeconds() 获取总耗时秒,同时也有获取毫秒的方法
prettyPrint() 优雅的格式打印结果,表格形式
shortSummary() 返回简短的总耗时描述
getTaskCount() 返回统计时间任务的数量
getLastTaskInfo().getTaskName() 返回最后一个任务TaskInfo对象的名称

最后

小编这些年深知大多数初中级工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此我收集整理了一份《2024年Java全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你需要这些资料,⬅专栏获取
WDivQ0RC-1719678342907)]

[外链图片转存中…(img-zI5Vqf97-1719678342908)]

[外链图片转存中…(img-eh6IsZEa-1719678342908)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你需要这些资料,⬅专栏获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值