`
zhang_xzhi_xjtu
  • 浏览: 538885 次
  • 性别: 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服务器进行性能测试,评估其在高...

    glxgears x11perf测试工具.docx

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

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

    官方版本,亲测可用

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

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

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

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

    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周期、缓存命中等)来收集数据,进而分析程序的性能瓶颈,...

    DNS PERF压力测试

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

    性能调优工具-perf介绍

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

    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-4.18.0-305.10.2.el8_4.x86_64.rpm

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

    性能验证工具,可以查看到每个子函数的时间消耗情况

    使用perf进行性能调试的基本步骤可能包括以下几点: 1. **安装perf**: 在Linux环境下,可以通过包管理器如`apt-get`或`yum`来安装perf。 2. **数据收集**: 运行`perf record`命令来收集程序的运行数据,可以指定要...

    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

    vue-perf-devtool.zip

    vue性能检查工具, ubuntu系统下的手动编译版本,适用于离线安装. 安装方法: 1. 解压本文件 2. 打开chrome, 进入extension 页面, 选择 unpack 安装方式, 选择解压的文件夹中的shells目录下的chrome文件夹

    使用Linux perf分析应用程序性能 - Jinyao 1

    使用 Linux perf 分析应用程序性能 perf 是 Linux 中的一个性能分析工具,能够对应用程序的性能进行详细的分析。perf 由 Linux 社区维护,Intel 也为其贡献了代码。perf 的主要特点是抽象硬件,支持软件事件,可以...

    perf-arm-jetson

    "perf-arm-jetson"是一个针对ARM架构,特别是在Jetson平台上的性能分析工具。perf是Linux内核提供的一款强大的性能事件采样工具,用于收集和分析CPU的各种性能数据,包括指令执行、缓存命中率、分支预测等。在ARM...

Global site tag (gtag.js) - Google Analytics