如何衡量JVM的启动时间?

哈尔

我有一个用Java编写的应用程序,我想知道到达该状态需要花费多少时间,static void int main(String args)并且在那个阶段它正在做什么?

我知道Microsoft有一个称为MPGO(经理配置文件指导的优化)的工具,是否有Java的等效工具?

脂蛋白

一种从Java应用程序内部测量启动时间的简单方法:

import java.lang.management.ManagementFactory;

public class Test {

    public static void main(String[] args) {
        long currentTime = System.currentTimeMillis();
        long vmStartTime = ManagementFactory.getRuntimeMXBean().getStartTime();
        System.out.println(currentTime - vmStartTime);
    }
}

您可以使用JVMTI代理来跟踪VM事件,例如类加载,垃圾回收,方法编译等。这是我制作的一个简单代理-vmtrace(以及Windows编译的dll)。

运行java -agentpath:path\to\vmtrace.dll Main,事件跟踪将打印到stderr

[0.00000] VMTrace started
[0.00182] Dynamic code generated: flush_icache_stub
[0.00187] Dynamic code generated: get_cpu_info_stub
[0.00519] Dynamic code generated: getCPUIDNameInfo_stub
[0.00524] Dynamic code generated: forward exception
[0.00526] Dynamic code generated: call_stub
...
[0.01182] Loading class: java/lang/Object
[0.01198] Loading class: java/lang/String
[0.01206] Loading class: java/io/Serializable
...
[0.05620] VM initialized
[0.05664] Class prepared: java/lang/invoke/MethodHandle
[0.05672] Loading class: java/lang/invoke/MethodHandleImpl
[0.05732] Class prepared: java/lang/invoke/MethodHandleImpl
[0.05738] Loading class: java/lang/invoke/MethodHandleImpl$1
[0.05743] Class prepared: java/lang/invoke/MethodHandleImpl$1
[0.05755] Loading class: java/lang/invoke/MethodHandleImpl$2
[0.05759] Loading class: java/util/function/Function
[0.05768] Class prepared: java/util/function/Function
...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何计算启动时间?

来自分类Dev

如何记录启动时间?

来自分类Dev

如何获得Windows启动时间?

来自分类Dev

如何加快Rails DelayedJobs的启动时间?

来自分类Dev

如何减少vim的启动时间?

来自分类Dev

如何获得Ubuntu的启动时间?

来自分类Dev

如何获得播放框架的启动时间?

来自分类Dev

Hazelcast:如何减少启动时间?

来自分类Dev

如何获得Windows启动时间?

来自分类Dev

如何缩短OpenRC系统的启动时间?

来自分类Dev

如何延迟启动程序的启动时间-Xubuntu

来自分类Dev

减少启动时间

来自分类Dev

减少启动时间

来自分类Dev

JVMTI代理如何在启动时设置JVM标志?

来自分类Dev

如何在solaris上获得完整的启动时间

来自分类Dev

如何防止闹钟在启动时运行经过的时间

来自分类Dev

如何跳过启动时间自定义udev规则?

来自分类Dev

如何在Ubuntu 18.04中加快启动时间

来自分类Dev

如何最小化程序启动时间

来自分类Dev

CudaEvent内核启动时间

来自分类Dev

缓慢的登录启动时间

来自分类Dev

VirtualBox的启动时间很慢

来自分类Dev

好像启动时间很长

来自分类Dev

缓慢的 Ubuntu 启动时间

来自分类Dev

如何衡量Servlet的运行时间?

来自分类Dev

从C ++启动时正确关闭JVM

来自分类Dev

Windows随时间窗口启动时如何自动启动应用程序

来自分类Dev

项目启动/Jvm启动时加载ehcache

来自分类Dev

无法在启动时间设置重复警报