性能测试:
由于软硬件及其复杂,本结果只具有参考意义。
代码:
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性能测试的工具包,版本为2.7.0,用户可以直接下载并解压使用,无需进行复杂的安装过程。 该工具的主要功能是对RabbitMQ服务器进行性能测试,评估其在高...
官方版本,亲测可用
ABC:六十秒完成Linux性能分析 Chapter 2: 工具平台篇 基于Ganglia实现集群性能态势感知 新一代Ntopng网络流量监控—可视化和架构分析 Packet Capturing:网络数据包的捕获、过滤与分析 Chapter 3: 系统内核篇 How ...
**X11PERF** 是一个专用于测试X Server图形性能的工具,它不仅可以评估图形性能,还关注窗口管理性能,适用于Linux和其他基于X Window系统的环境。 - **基本使用**: - 首先启动X Server,通常可以通过命令 `...
ABC:六十秒完成Linux性能分析 Chapter 2: 工具平台篇 基于Ganglia实现集群性能态势感知 新一代Ntopng网络流量监控—可视化和架构分析 Chapter 3: 系统内核篇 How Linux Works 动态追踪技术(一):DTrace 动态追踪...
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
ABC:六十秒完成Linux性能分析 Chapter 2: 工具平台篇 基于Ganglia实现集群性能态势感知 新一代Ntopng网络流量监控—可视化和架构分析 Chapter 3: 系统内核篇 How Linux Works 动态追踪技术(一):DTrace 动态追踪...
perf 是一个功能强大的性能分析工具,专门为 Linux 操作系统设计,涵盖了硬件级别和软件级别的性能分析功能。该工具可以对 Linux 系统的性能进行详细的分析和优化。 perf 的基本机理 ----------------- perf 的...
传统的malloc/free操作在高并发环境下可能成为性能瓶颈,而TCMalloc通过在每个线程中维护自己的小内存池来避免锁竞争,提高内存分配效率。在Nginx这样的多线程服务器中,启用TCMalloc可以显著减少内存分配的开销,...
昨天在公司时,本来想用kafka...但事与愿违,当我执行官方提供的kafka测试脚本,却报错没有找到ProducerPerformance,后来浏览一些代码文件,才发现没有把perf性能测试程序打包到kafka_2.x.0-0.8.x.x.jar发行版本中。
Linux中的`perf`是一款强大的性能分析工具,专用于系统级的性能分析,它能够帮助开发者深入理解程序在操作系统层面上的执行情况。`perf`利用硬件事件(如CPU周期、缓存命中等)来收集数据,进而分析程序的性能瓶颈,...
【性能调优工具perf介绍】 性能调优是提升软件系统效率的关键步骤,特别是在资源有限的环境中,优化能够最大化硬件的潜力。"perf"是Linux内核自带的一款强大的性能诊断工具,自内核2.6.31引入Performance Counter...
官方离线安装包,亲测可用。使用rpm -ivh [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
vue性能检查工具, ubuntu系统下的手动编译版本,适用于离线安装. 安装方法: 1. 解压本文件 2. 打开chrome, 进入extension 页面, 选择 unpack 安装方式, 选择解压的文件夹中的shells目录下的chrome文件夹
使用 Linux perf 分析应用程序性能 perf 是 Linux 中的一个性能分析工具,能够对应用程序的性能进行详细的分析。perf 由 Linux 社区维护,Intel 也为其贡献了代码。perf 的主要特点是抽象硬件,支持软件事件,可以...
"perf-arm-jetson"是一个针对ARM架构,特别是在Jetson平台上的性能分析工具。perf是Linux内核提供的一款强大的性能事件采样工具,用于收集和分析CPU的各种性能数据,包括指令执行、缓存命中率、分支预测等。在ARM...
Linux系统中的perf是一款强大的性能分析工具,专为深入了解操作系统及应用程序的性能瓶颈而设计。它提供了丰富的命令行接口,能够帮助开发者和系统管理员对CPU周期消耗、指令执行、内存访问等进行深入剖析,从而优化...