AOP计算method执行时间为0

首先是一个aspect, 打印开始执行时间,执行方法, 打印输出时间。execution的表达式是下面这个controller的所以method。
aspect
用ajax请求触发这个controller方法,会被AOP横
controller请求
启动Tomcat,重复三次请求这个URL,控制台输出的三次结果分别为:
图片说明
为什么后面的执行的时间几乎都是0, 是有什么缓存?如果有如何去解决这个问题。

0

1个回答

我觉得应该是你这段代码其实没干啥事就是两个循环,最后被jit发现然后优化掉了,你里面搞点逻辑试试,不会是0 的

1
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
使用Spring AOP来统计方法的执行时间
一、解决方案 1、传统方法 最简单、粗暴的方法是给各个需要统计的方法开始和结尾处加的时间戳,然后差值计算结果即可,代码如下: long startTime = System.currentTimeMillis(); // 业务代码 long endTime = System.currentTimeMillis(); System.out.println("程序运行时间:" +
利用springAOP做方法执行时间计算
applicationContext.xml配置 <!-- 开启组建扫描 -->   <context:component-scan   base-package="com.xdl"  />   <!-- 开启标注形式的aop -->  <aop:aspectj-autoproxy     proxy-target-class="true" /> ...
计算service层每个方法执行的时间,使用aop实现查找哪些方法运行超时
package com.aop;import org.aopalliance.intercept.MethodInterceptor;import org.aopalliance.intercept.MethodInvocation;import org.apache.commons.lang3.StringUtils;import org.apache.commons.lang3.time.St...
springAOP实现方法运行时间统计
昨天,笔者在一个互联网面试上,被问及如何用springAOP实现方法运行时间统计。笔者第一反应,想到了aop的before和after,寻思分别在两个方法里获得当前时间,最后一减就可以了。因此,今天就探讨了一下这个问题,和大家分享一下。创建maven工程,引入spring的依赖包,配置好applicationContext-aop.xml,如下:<?xml version="1.0" enc...
aop 计算方法运行时间
写程序的时候同样的功能
spring boot aop 记录方法执行时间
前言 为了性能调优,需要先统计出来每个方法的执行时间,直接在方法前后log输出太麻烦,可以用AOP来加入时间统计 添加依赖 dependency> groupId>org.springframework.bootgroupId> artifactId>spring-boot-starter-aopartifactId> dependency> 在applic
springboot中通过aop的形式获取方法执行时间
前言老大让本人写一个方法,获取controller中的每个方法的执行时间,大于一定的时间抓出来,后期做优化。 网上找了一些方法,特此记录一下。 注意:这里需要各位同学对springboot有一定的了解。话不多说,直接上代码:aspect类:package com.fengye.aspect;import com.fengye.common.enums.ResultEnum; import com.f
Spring aop拦截springmvc的controller请求方法,添加日志和统计方法执行时间
前言 系统最近莫名挂了三次,查看log日志没找到原因,因为只有少数功能日志输出,大部分功能都没记录日志。打算通过spring aop来给springmvc的controller层的方法加日志,进入方法,方法执行完都记录日志,同时记录方法执行的耗时。日志输出级别为debug,通过log4j的分级别输出日志到不同的文件,下面记录下aop拦截的步骤。 1.applicationContext.xml...
Spring AOP实践--记录类方法执行时间
网上有许多关于记录方法执行时间的帖子,但是看了一下,基本上操作不方便,或者都是开发测试性质的不太适用,我在这里做了完善,直接内置到项目中,使用的时候只需要在方法上添加注解@MethodLog即可,非常方法,现记录下来 现在要求如下: 要将service业务层的方法都记录下来方法执行时间,用户进行的操作 所要引入的包括三部分: 1 log日志部分,目前,系统里面的
C#下的时间测试(用于计算方法执行时间)
public class Timing { private TimeSpan m_StartTime; private TimeSpan duringTime; public Timing() //构造函数用于初始化开始时间和持续时间 { this.m_StartTime = new Time...
Spring AOP 统计函数方法执行时间实例
package com.packtpub.aop; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; i...
使用Spring的AOP实现接口方法执行时间记录
项目使用RPC提供的内部服务,需要监控每个接口方法的调用情况以及响应时间,如果接口方法开始和结束时都计时并将两个时间相减得到响应时间,势必对代码的入侵太大。使用AOP刚好能很优雅的解决这个问题!   1.MethodTimeAdvice.java 用来记录时间   Java代码   package yourpackage.utils;      imp
springboot aop 记录接口调用时间
声明注解 Time.java /** * @author : rain * @date : 2018/8/9 7:24 AM * * 时间记录annotation * 标注需要记录时间消耗的方法 */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface Timer { } ...
使用 AOP 统计方法的执行时间
代码如下: @Aspect @Slf4j @Component public class PerformanceAspect { // 用于统计一个方法的执行时间和结果(成功执行、执行出错) @Around("repositoryOps()") public Object logPerformance(ProceedingJoinPoint pjp) throws T...
Spring AOP 实现监控方法执行的时间(统计service中方法执行的时间)
项目中有时候会遇到统计方法执行的时间,来对项目进行优化!下面是我自己在工作中遇到的问题,和我自己的解决方法。 要统计出项目中方法执行时间大于1秒的那些方法!我们的项目开发使用的是SpringMVC 那么首先想到使用 Aop Aspet 切面统计,那样子更加方便也高效。 1:打开切面!因为项目使用的SpringMVC,项目中的配置文件就配置的 <aop:aspectj-autoproxy ...
利用Spring Aop监测每个Controller或方法的执行时长
-
LogAOP计算每个接口的调用时间
util类里添加:   package anmav.menu.utils; import common.anmav.utils.JsonUtils; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.Signature; import org.aspectj.lang.annotation.Around...
Android启动优化--AOP获取方法耗时
启动优化--AOP获取方法耗时 AOP 的意思是面向切面编程,详见 Spring 中的 AOP,是一个意思。 背景 需要知道启动阶段各个方法耗时情况,常规操作是通过手动埋点的方式,这个方式代码的侵入性强,工作量大。 AOP介绍 Aspect Oriented Programming , 面向切面编程,优点如下。 (1)针对同一类问题的统一处理 (2)无侵入添加代码 ...
spring aop实现打印方法执行时间
spring aop基于代理实现,主要包含两种----接口代理,类代理 接口代理   可参考jdk代理,主要通过反射来实现 类代理     可参考cglib代理,主要使用继承来实现 注:两种代理均无法实现对私有方法和静态方法的代理 这两种代理都可以看做代理设计模式的一种实现. 前一段时间要统计一个项目中各个方法的执行时间,就用spring aop做了一个实现,
使用aop代理获取不到Annotation注解问题
问题场景:使用aop切面方法执行一些业务,过程中查看执行的方法是否有一个自定义的注解,有的话做其他的操作 这里碰到了一个问题 ,执行的方法有注解,但是通过Annotation an = method.getAnnotation(UserChangeLog.class); 取值为null.具体情况和此篇文章类似:示例其实问题很简单,是代理对象和目标对象的问题,通过代理模式生成代理对象上的方法不会有注解
AOP切面实现方法日志打印耗时计算
很简单,通过AOP实现每个方法访问时候统一进行日志打印和耗时计算,相关配置:1、spring配置在spring配置xml文件中设置启用aop <aop:aspectj-autoproxy proxy-target-class="true" />2、aop具体业务类(通过注解的方式,使用“环绕通知”)@Aspect @Component public class LoggingAspec...
SpringBoot中使用AOP 监控sql耗时
SpringBoot中AOP 监控sql耗时
springboot打印sql并用AOP监控sql执行时间
项目打印出每句sql,有利于我们维护项目,出现bug时能够及时的找到原因,因此sql的打印和慢sql的监控相当重要。 springboot默认使用的数据源是HikariCP,它的速度较快,但是并不提供监控。我们使用p6spy来进行sql的打印。为方便演示使用H2内嵌式数据库+Jpa,为了便于开发使用lombok提供快捷的注解。 一、生成项目框架 在https://start.spring.io/上...
Spring-Boot+AOP+统计单次请求方法的执行次数和耗时情况
本篇结合aop(面向切面编程)的特性,对spring-boot项目下后端开发人员所关心的java代码的性能做了一次简单的统计,比如,前端发了一个post请求(一连串数据的保存),到了后端,首先是指定Controller的某个方法做接收,本篇称之为接入点方法;其次就是以接入点方法为线索,继续向下执行剩余模块(包)里面的方法,而这些方法就是我们所关心的数据业务的实现部分。    如果利用ao
Spring之AOP实现日志输出,记录方法执行时间
为了更好的了解AOP,进行实践,用AOP实现日志输出,记录方法执行时间。 项目总体结构 项目简介;项目采用SpringBoot简单的实现一个访问模块。再用AOP实现此模块的日志输出,记录方法的执行时间。 pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/X...
自定义注解、切面,监控每个controller执行时长
ExecuteTime注解 @Target(ElementType.METHOD)//注解用在方法上,用于描述方法 @Retention(RetentionPolicy.RUNTIME)//注解在运行时保留 @Documented//指定javadoc生成API文档时显示该注解信息 public @interface ExecuteTime { //调用时长阈值,默认为0,单位为毫秒,运...
C语言计算程序运行时间问题
#include "stdio.h" #include "stdlib.h" #include "time.h" int main(void) { long i = 10000000L; clock_t start, finish; double duration; /*测量一个事件持续的时间*/ ...
spring mvc inteceptor 拦截器实现计算controller 的执行时间(转载)
什么是 spring inteceptor , SpringMVC 中的Interceptor 拦截请求是通过HandlerInterceptor 来实现的。在SpringMVC 中定义一个Interceptor 非常简单,主要有两种方式,第一种方式是要定义的Interceptor类要实现了Spring 的HandlerInterceptor 接口,或者是这个类继承实现了HandlerInterce
我为Dexposed续一秒——论ART上运行时 Method AOP实现
两年前阿里开源了Dexposed 项目,它能够在Dalvik上无侵入地实现运行时方法拦截,正如其介绍「enable ‘god’ mode for single android application」所言,能在非root情况下掌控自己进程空间内的任意Java方法调用,给我们带来了很大的想象空间。比如能实现运行时AOP,在线热修复,做性能分析工具(拦截线程、IO等资源的创建和销毁)等等。然而,随
一个用Spring AOP实现异常处理和记录程序执行时间的实例
虽然前面也给出了Spring AOP的一些实例,但因为主要目的是为了介绍Spring的知识点,不一定会很完整,下面笔者就通过一个完整的用Spring AOP实现异常处理和记录程序执行时间的实例来展示使用Spring AOP的整个过程。 异常处理和记录程序执行时间的实例简介 这个实例主要用于在一个系统的所有方法执行过程中出现异常时,把异常信息都记录下来,另外记录每个方法的执行时间。用两个...
SpringAOP来监控service层中每个方法的执行时间
使用AOP来说,太方便了,并且特别适合这类场景。 代码如下,这里是将要统计的信息写到log文件中,也可以设计成写入表中。 package com.ecsoft.interceptor; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj...
【实例】使用Spring AOP进行业务增强(通过XML配置)
使用Spring AOP 计算API执行时间。要求使用AspectJ 切入点表达式来配置。(用xml配置) 打印出api执行的时间,要求是微秒为单位(System.currentTimeMillis),使用around。 设定一个超时时间,如果测试API超过该时间,则报错,使用finallyMethod。 增强类 package com.bamzhy.advice;import com.bamzhy
程序运行时间为0的问题
今天为了检测自己某些功能模块的时间消耗,发现使用了好几种方法,得到的时间都是0 ,后来才发现是因为消耗的时间太少了,一般常用的方法得到的时间精度不够,下面分享一下我的学习历程。 1.一开始使用GetTickCount();,测试结果为0,具体代码: DWORD dwStart = GetTickCount(); DWORD dwStart = timeGetTime();
SpringBoot AOP,收集日志、统计方法执行时长
用过Spring 的开发者都知道它有两大核心功能,1.依赖注入(IOC、DI)、2.面向切面编程(AOP)。 AOP:面向切面编程,往往用来实现关注点的分离的技术。系统是由许多不同的组件所组成的,每一个组件各负责一块特定功能。可以很好的集成日志收集、权限拦截、运行监控等功能。 同时,它对系统也是无入侵的,无须改动其他业务代码,就能达到收集信息的目的,非常赞。 1.在项目中添加AOP引用 ...
通过AOP获取方法参数名的方法详解
直接看代码:    private void getKey(ProceedingJoinPoint joinPoint){        Object[] arguments = joinPoint.getArgs();//传入的参数                Signature signature = joinPoint.getSignature();//此处joinPoint的实现类是Me...
Spring实战教程 | 第十二篇:用Spring AOP实现异常处理和记录程序执行时间
这个实例用于一个系统的所以方法执行过程中出现异常时,把异常信息都记录下来,还有记录每个方法的执行时间,这两个业务逻辑首先使用SpringAOP的自动代理功能,然后一个用Java的动态代理,一个用CGLIB代理 用Spring AOP的自动代理实现 (1)定义负责异常处理的Advice为ExceptionHandler.java ,负责当程序执行过程中出现异常,把异常信息记录下来 pu...
怎么aop中实现记录请求访问时间:用ThreadLocal
package com.example.demo.aop; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Befor
使用ASM4.0实现AOP的功能,监控每个方法的执行时间
接之前的博客http://zhwj184.iteye.com/admin/blogs/1630756 关于asm使用的示例,这次使用asm来动态统计每个方法的执行时间,实现AOP功能。 AOP的更通用的做法是对原始类动态生成子类,调用子类的方法覆盖父类,来实现AOP的功能。著名的 Hibernate 和 Spring 框架,就是使用这种技术实现了 AOP 的“无损注入”。   下
spring boot+aop实现注解拦截异常日志和接口响应所用时间日志
原spring boot+aop实现注解拦截异常日志和接口响应所用时间日志项目描述通过添加注解就能自动捕获异常和计算接口所用的时间运行环境jdk1.8 + springboot + maven + eclipse项目技术(必填)jdk1.8 + springboot + maven + AOP + 注解数据库文件没有数据库jar包文件maven管理是否原创(转载必填原文地址)原创项目截图(必填) ...
spring(十):aop环绕通知
假如有这么一个场景,需要统计某个方法执行的时间,如何做呢?   典型的会想到在方法执行前记录时间,方法执行后再次记录,得出运行的时间。   如果采用Spring的AOP,仅仅使用前置和后置方法是无法做到的,因为他们无法共享变量。这样通过环绕通知,就可以快捷的实现。   首先在切面通知类中声明环绕通知类: public void watchPerform
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 0基础大数据 0基础学python