`
zhang_xzhi_xjtu
  • 浏览: 542334 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

[perf] java常用基本操作性能测试-反射

 
阅读更多
性能测试:
由于软硬件及其复杂,本结果只具有参考意义。
代码:
https://github.com/zhang-xzhi/perftest


测试方法:

1个test运行loop次,为一个suite,算一个suite的平均时间。
可以跑多个suite,各个suite算各自的suite平均时间。
由各个suite的平均时间计算总体平均时间。
计算各个suite的平均时间和总体平均时间的误差是否在delta内。
如果满足,则本次测试有效。
如果不满足,则增大loop重新运行。

时间单位为ns。


反射
loop=20000 suite=5 delta=0.2
avg=512        name=ReflectionConstructor              des=class.getConstructor                          
avg=59         name=ReflectionConstructorInvoke        des=constructor.newInstance                       
avg=8          name=ReflectionConstructor_DirectAccess des=direct access constructor.  
                  
avg=480        name=ReflectionField                    des=getDeclaredField and setAccessible.           
avg=63         name=ReflectionFieldInvoke              des=field.get().                                  
avg=5          name=ReflectionField_DirectAccess       des=direct access field.     
                     
avg=665        name=ReflectionMethod                   des=getDeclaredMethod and setAccessible.          
avg=15         name=ReflectionMethodInvoke             des=method.invoke().                              
avg=5          name=ReflectionMethod_DirectAccess      des=direct access method.    
                     
avg=110        name=ReflectionNewInstance              des=class.newInstance()

测试了构造函数,方法,field的3种操作方式。

S1:
ReflectionConstructor
ReflectionField
ReflectionMethod
为使用class.get得到Constructor,Field,Method对象。

S2:
ReflectionConstructorInvoke
ReflectionFieldInvoke
ReflectionMethodInvoke
为使用Constructor,Field,Method对象来构造对象,取值,调用方法。

S3:
ReflectionConstructor_DirectAccess
ReflectionField_DirectAccess
ReflectionMethod_DirectAccess
为使用java代码直接构造对象,取值,调用方法。

可以看到S1:S2:S3各自相差一个数量级。

ReflectionNewInstance
由于class的实现对Constructor对象做了缓存,因此,class.newInstance的时间比ReflectionConstructorInvoke稍慢一点。
分享到:
评论

相关推荐

    rabbitmq-perf-test-2.7.0-bin.tar.gz

    "rabbitmq-perf-test-2.7.0-bin.tar.gz" 是一个针对RabbitMQ性能测试的工具包,版本为2.7.0,用户可以直接下载并解压使用,无需进行复杂的安装过程。 该工具的主要功能是对RabbitMQ服务器进行性能测试,评估其在高...

    activemq-perf-maven-plugin-5.8.0-sources.jar

    官方版本,亲测可用

    glxgears x11perf测试工具.docx

    **X11PERF** 是一个专用于测试X Server图形性能的工具,它不仅可以评估图形性能,还关注窗口管理性能,适用于Linux和其他基于X Window系统的环境。 - **基本使用**: - 首先启动X Server,通常可以通过命令 `...

    python-perf-3.10.0-1160.6.1.el7.x86_64.rpm

    官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装

    Linux Perf Master(Linux性能大师)-第二版-epub

    ABC:六十秒完成Linux性能分析 Chapter 2: 工具平台篇 基于Ganglia实现集群性能态势感知 新一代Ntopng网络流量监控—可视化和架构分析 Packet Capturing:网络数据包的捕获、过滤与分析 Chapter 3: 系统内核篇 How ...

    Linux Perf Master(Linux性能大师)-第二版-mobi

    ABC:六十秒完成Linux性能分析 Chapter 2: 工具平台篇 基于Ganglia实现集群性能态势感知 新一代Ntopng网络流量监控—可视化和架构分析 Chapter 3: 系统内核篇 How Linux Works 动态追踪技术(一):DTrace 动态追踪...

    Linux Perf Master(Linux性能大师)-第二版

    ABC:六十秒完成Linux性能分析 Chapter 2: 工具平台篇 基于Ganglia实现集群性能态势感知 新一代Ntopng网络流量监控—可视化和架构分析 Chapter 3: 系统内核篇 How Linux Works 动态追踪技术(一):DTrace 动态追踪...

    Linux perf user guide

    perf 是一个功能强大的性能分析工具,专门为 Linux 操作系统设计,涵盖了硬件级别和软件级别的性能分析功能。该工具可以对 Linux 系统的性能进行详细的分析和优化。 perf 的基本机理 ----------------- perf 的...

    google-perftools下载

    传统的malloc/free操作在高并发环境下可能成为性能瓶颈,而TCMalloc通过在每个线程中维护自己的小内存池来避免锁竞争,提高内存分配效率。在Nginx这样的多线程服务器中,启用TCMalloc可以显著减少内存分配的开销,...

    kafka-perf_2.x.x-0.8.1.jar

    昨天在公司时,本来想用kafka...但事与愿违,当我执行官方提供的kafka测试脚本,却报错没有找到ProducerPerformance,后来浏览一些代码文件,才发现没有把perf性能测试程序打包到kafka_2.x.0-0.8.x.x.jar发行版本中。

    perf 性能测试工具

    Linux中的`perf`是一款强大的性能分析工具,专用于系统级的性能分析,它能够帮助开发者深入理解程序在操作系统层面上的执行情况。`perf`利用硬件事件(如CPU周期、缓存命中等)来收集数据,进而分析程序的性能瓶颈,...

    perf-MSSQL14.MSSQLSERVER01-sqlagtctr.dll

    系统依赖DLL动态库

    CTIA-Certification-Wi-Fi-Alliance-Test-Plan-for-RF-V4.0.1最新版本标准

    CTIA-Certification-Wi-Fi-Alliance-Test-Plan-for-RF-Perf-Eval-of-Wi-Fi-Mobile-Converged-Devices-V4.0.1

    性能调优工具-perf介绍

    【性能调优工具perf介绍】 性能调优是提升软件系统效率的关键步骤,特别是在资源有限的环境中,优化能够最大化硬件的潜力。"perf"是Linux内核自带的一款强大的性能诊断工具,自内核2.6.31引入Performance Counter...

    DNS PERF压力测试

    "queryperf"可能是另一个DNS压力测试工具,或者与DNS perf相关的命令或脚本,用于执行特定类型的性能测试。它可能提供了额外的功能或测试模式,比如特定协议版本的支持(如TCP或UDP),或者针对特定DNS服务器特性的...

    你知道perf学习-linux自带性能分析工具怎么用?.docx

    Perf 是 Linux 操作系统内置的一个强大的性能分析工具,它专用于软件性能分析,尤其在32内核以上的版本中广泛使用。自Linux内核2.6.31以来,perf 已经成为开发者和系统管理员进行性能调优的重要助手。这个工具能够...

    perf-tools:基于Linux perf_events(aka perf)和ftrace的性能分析工具

    Linux ftrace和perf_events(又称“ perf”命令)的各种开发中和不受支持的性能分析工具。 ftrace和perf都是内核源代码中包含Linux核心跟踪工具。 您的系统可能已经有ftrace,并且perf通常只是一个软件包添加(请...

    perf-4.18.0-305.10.2.el8_4.x86_64.rpm

    官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装

    python-perf-3.10.0-1160.2.1.el7.centos.plus.x86_64.rpm

    python-perf-3.10.0-1160.2.1.el7.centos.plus.x86_64

    google-perftools 源码 (一款针对 C/C++ 程序的性能分析工具)

    google-perftools 是一款针对 C/C++ 程序的性能分析工具,它是一个遵守 BSD 协议的开源项目。使用该工具可以对 CPU 时间片、内存等系统资源的分配和使用进行分析,本文将重点介绍如何进行 CPU 时间片的剖析。 google...

Global site tag (gtag.js) - Google Analytics