用ByteBuddy和Java agent技术来统计方法的调用时长。
达拉特网站制作公司哪家好,找创新互联公司!从网页设计、网站建设、微信开发、APP开发、响应式网站等网站项目制作,到程序开发,运营维护。创新互联公司于2013年创立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联公司。
byteBuddy框架致力于解决字节码操作和instrumentaton API的复杂性。ByteBuddy所声称目标是先将显示的字节码操作隐藏在一个类型安全的领域的特定语言背后。ByteBuddy提供了额外的API来生成Javaagent。
Skywalking是一个国产的开源框架,支持Java、.Net、NodeJs等探针,数据存储支持Mysql、Elasticsearch等,跟Pinpoint一样采用字节码注入的方式实现代码的无侵入,探针采集数据粒度粗,但性能表现优秀,且对云原生支持。
Skywalking是分布式系统的应用程序性能监视工具,专为微服务,云原生架构和基于容器(Docker,K8S,Mesos)架构而设计,它是一款优秀的APM(Application Performance Management)工具,包括了分布式追踪,性能指标分析和服务依赖分析等。
第一种是以毫秒为单位计算的。
[java] view plain copy
//伪代码
long startTime=System.currentTimeMillis(); //获取开始时间
doSomeThing(); //测试的代码段
long endTime=System.currentTimeMillis(); //获取结束时间
System.out.println("程序运行时间: "+(end-start)+"ms");
第二种是以纳秒为单位计算的。
[java] view plain copy
//伪代码
long startTime=System.nanoTime(); //获取开始时间
doSomeThing(); //测试的代码段
long endTime=System.nanoTime(); //获取结束时间
System.out.println("程序运行时间: "+(end-start)+"ns");
包含所需的包: import java.lang.System;
java代码运行时要消耗多少时间的测量方法:
定义一个起始时间:
long start = System.currentTimeMillis();
//这里是你要执行的程序块。。。。
定义一个结束时间
long end = System.currentTimeMillis();
程序快执行耗时=start-end;
public class Test{
public static void main(String[] args) {
long startMili=System.currentTimeMillis();// 当前时间对应的毫秒数
System.out.println("开始 "+startMili);
// 执行一段代码,求一百万次随机值
for(int i=0;i1000000;i++){
Math.random();
}
long endMili=System.currentTimeMillis();
System.out.println("结束 s"+endMili);
System.out.println("总耗时为:"+(endMili-startMili)+"毫秒");
}
}
分享名称:java探针统计代码耗时的简单介绍
浏览路径:https://www.cdcxhl.com/article24/hgddce.html
成都网站建设公司_创新互联,为您提供营销型网站建设、品牌网站建设、小程序开发、面包屑导航、微信公众号、关键词优化
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联