spring StopWatch用法

背景

有时我们在做开发的时候需要记录每个任务执行时间,或者记录一段代码执行时间,最简单的方法就是打印当前时间与执行完时间的差值,然后这样如果执行大量测试的话就很麻烦,并且不直观,如果想对执行的时间做进一步控制,则需要在程序中很多地方修改,目前spring-framework提供了一个StopWatch类可以做类似任务执行时间控制,也就是封装了一个对开始时间,结束时间记录操作的Java类,小例一则如下

实例

package com.example.stopwatch;

import org.springframework.util.StopWatch;

public class TestStopWatch {
    private void test() throws InterruptedException {
        StopWatch sw = new StopWatch();

        sw.start("起床");
        Thread.sleep(1000);
        sw.stop();

        sw.start("洗漱");
        Thread.sleep(2000);
        sw.stop();

        sw.start("锁门");
        Thread.sleep(500);
        sw.stop();

        System.out.println(sw.prettyPrint());
        System.out.println(sw.getTotalTimeMillis());
        System.out.println(sw.getLastTaskName());
        System.out.println(sw.getLastTaskInfo());
        System.out.println(sw.getTaskCount());
    }

    public static void main(String []argv) throws InterruptedException {
        TestStopWatch testStopWatch = new TestStopWatch();
        testStopWatch.test();
    }
}

结果

StopWatch ‘‘: running time (millis) = 3518
-----------------------------------------
ms     %     Task name
-----------------------------------------
00998  028%  起床
02020  057%  洗漱
00500  014%  锁门

3518
锁门
[email protected]
3

  

时间: 2025-01-04 01:28:08

spring StopWatch用法的相关文章

Spring JdbcTemplate用法整理

Spring JdbcTemplate用法整理: xml: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www

Java Spring AOP用法

Spring AOP Java web 环境搭建 Java web 项目搭建 Java Spring IOC用法 spring提供了两个核心功能,一个是IoC(控制反转),另外一个便是Aop(面向切面编程),IoC有助于应用对象之间的解耦,AOP则可以实现横切关注点(如日志.安全.缓存和事务管理)与他们所影响的对象之间的解耦. 1.简介 AOP主要包含了通知.切点和连接点等术语,介绍如下 通知(Advice) 通知定义了切面是什么以及何时调用,何时调用包含以下几种 Before 在方法被调用之前

Spring AOP用法详解

什么是AOP AOP:Aspect Oriented Programming,中文翻译为"面向切面编程".面向切面编程是一种编程范式,它作为OOP面向对象编程的一种补充,用于处理系统中分布于各个模块的横切关注点,比如事务管理.权限控制.缓存控制.日志打印等等.AOP采取横向抽取机制,取代了传统纵向继承体系的重复性代码 AOP把软件的功能模块分为两个部分:核心关注点和横切关注点.业务处理的主要功能为核心关注点,而非核心.需要拓展的功能为横切关注点.AOP的作用在于分离系统中的各种关注点,

Spring Aspect 用法略讲

『配置Aspect』 若要启用AspectJ风格的注解则必须额外的导入AspectJ的jar包,此外还需要在spring的配置文件中进行配置,配置方式有两种; 一.在配置文件的Schema中进行配置 第一步:在schema中添加xmlns:aop="http://www.springframework.org/schema.aop" 第二步:在schema中的xsi:schemaLocation中添加两行:http://www.springframework.org/schema/ao

spring assert 用法

spring在提供一个强大的应用开发框架的同时也提供了很多优秀的开发工具类,合理的运用这些工具,将有助于提高开发效率.增强代码质量.下面就最常用的Assert工具类,简要介绍一下它的用法.Assert断言工具类,通常用于数据合法性检查. 源码: /* * Copyright 2002-2016 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"

Spring @Value 用法小结

起因 一直的用法是 @Value("${jdbc.driverClass}") 这样,但在Spring官方文档里又看到 @Value("#{a.b}")的用法. 于是研究了下. 结论 @Value的值有两类: ① ${ property : default_value } ② #{ obj.property? : default_value } 就是说,第一个注入的是外部参数对应的property,第二个则是SpEL表达式对应的内容. 那个 default_valu

监控代码运行时长 -- StopWatch用法例程

在.net环境下,精确的测量出某段代码运行的时长,在网络通信.串口通信以及异步操作中很有意义.现在做了简单的总结.具体代码如下: (1).首先 using System.Diagnostics; (2).主要代码 Stopwatch sw = new Stopwatch(); //监听循环10000次需要的时长 // 计时开始 sw.Start(); for (int i = 0; i < 10000;i++ ) { // to do } // 计时结束 sw.Stop(); Console.W

spring mongodb用法

A field annotated with @Id (org.springframework.data.annotation.Id) will be mapped to the '_id' field.A field without an annotation but named 'id' will be mapped to the '_id' field. 需要包括maven依赖 <dependency> <groupId>org.springframework.data<

spring @Scheduled用法

@Scheduled(cron = "0 5 * * * ?") org.springframework.scheduling.annotation.Scheduled /** * Annotation that marks a method to be scheduled. Exactly one of the * <code>cron</code>, <code>fixedDelay</code>, or <code>fi