Java虚拟机的启动时间由啥组成?

     2023-03-06     174

关键词:

【中文标题】Java虚拟机的启动时间由啥组成?【英文标题】:What does the start-up time compose of in Java virtual machine?Java虚拟机的启动时间由什么组成? 【发布时间】:2012-06-15 00:58:38 【问题描述】:

有时我听到人们讨论 Java 的启动时间。看来这是一个重要的性能方面。但它到底是什么?

它由什么组成?
    动态类加载导致的类加载时间? 还是在只编译 JVM 中的首次编译开销? 或者其他导致 Java 程序执行初期“缓慢”的原因?

那么,第二个问题是

如何测量Java程序的启动时间?从哪一点到哪一点的持续时间称为启动时间?

我不知道我的问题是否以正确的方式提出;如果没有,请告诉我。谢谢!

【问题讨论】:

我一直听到这个术语被非正式地提及,我很好奇是否有人为它确定了一个正式的定义。 【参考方案1】:

启动时间没有正式定义。事实上,实际 IT 中使用的大多数术语都没有正式定义。 (或者忽略正式定义。)

但粗略地说,是从应用程序启动到准备好做一些有用的事情的时间。启动期间发生的事情取决于应用程序,但它包括静态类加载、静态类初始化和(可能)一些类的 JIT 编译。其他事情可能包括启动 UI、连接到数据库、预加载特定于应用程序的数据结构、应用程序“连接”等等。

尝试正式定义“启动时间”的问题在于,对于某些重要的应用程序类型子集,任何定义都可能不起作用。即使您可以定义它,在应用程序宣布自己为“就绪”后,一些启动(或预热)任务可能会继续在后台发生,这很复杂。

(这不是 Java 特定的问题。考虑一下笔记本电脑的“启动”;即在打开它的电源和您的桌面完全可用之间会发生什么。)

如何测量 Java 程序的启动时间?从哪一点到哪一点的持续时间称为启动时间?

这两个都由您决定,具体取决于您所谈论的应用程序的类型,以及希望将什么视为应用程序的启动阶段。

【讨论】:

【参考方案2】:

正如 Stephen C 提到的,“启动时间”没有通用的正式定义。

为了直观理解这个概念,我在Oracle's webs上找到了一些描述。

基本上,它给出了一个非正式的定义。 “应用程序的启动时间是应用程序启动并运行并准备开始执行它应该执行的操作所需的时间。” JVM 和应用程序本身都会影响启动-正常运行时间。

另外,它提供了一些想法(调整堆大小-Xms/-Xmx)来减少启动时间。太大或太小的堆大小都会延长启动时间。

此外,“Diagnosing a Slow JVM Startup”显示了一些线索,可以找到启动缓慢的原因。

注意以上都是JRockit JVM的上下文,但是思路比较笼统。

【讨论】:

Spark 中的 executorRunTime 由啥组成?

...nTimeconsistofinSpark?Spark中的executorRunTime由什么组成?【发布时间】:2019-03-1214:27:26【问题描述】:目前正在研究Spark,我通过自定义Spark侦听器API收集了一些性能指标用于分析目的。我试图制作一个堆积条形图,显示执行器通过执... 查看详情

Rails/Devise 会话中的warden 数据由啥组成?

...ncomposedof?Rails/Devise会话中的warden数据由什么组成?【发布时间】:2014-06-2903:32:50【问题描述】:Rails会话中的“数据”如下所示:"warden.user.user.key"=>[[1],"long-random-string 查看详情

是否可以查看存储的文件由啥序列的 1 和 0 组成?

...?是否可以查看存储的文件由什么序列的1和0组成?【发布时间】:2018-11-0505:37:33【问题描述】:我在想,计算机中的所有内容都存储为1和0的序列。因此,对于存储在硬盘驱动器中的任何文件和软件,同样的事情也应该如此。但... 查看详情

jvm学习---jvm的生命周期

JVM的生命周期虚拟机的启动虚拟机的执行虚拟机的退出详细参考虚拟机的启动Java虚拟机的启动是通过引导类加载器(bootstrapclassloader)创建一个初始类(initialclass)来完成的,这个类是由虚拟机的具体实现指... 查看详情

oracle内存结构由啥组成?

...组成:sga(systemglobalarea),pga(programglobalarea).SGA:在一个实例启动时分配,是实例的组成部分。PGA:一个服务进程启动就分配了一个PGA.(多个)。1.系统全局区(SGA):由一组内存结构组成,是所有用户进程共享的的一块内存区域.其中... 查看详情

jvm的生命周期和发展历程

JVM的生命周期虚拟机的启动Java虚拟机的启动是通过引导类加载器(BootstrapClassLoader)创建一个初始类(initialclass)来完成的这个类是虚拟机的具体实现来指定的。虚拟机的执行一个运行中的Java虚拟机有着一个清晰的任务:执行Ja... 查看详情

jvm的基本组成

java虚拟机的基本结构如图:1)类加载子系统负责从文件系统或者网络中加载Class信息,加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中可能还会存放运行时常量池信息,包括字符串字面量和数字常... 查看详情

执行引擎(代码片段)

执行引擎是java虚拟机核心的组成部分之一虚拟机是一个相对于物理机的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由件... 查看详情

java虚拟机二虚拟机的基本结构

Java虚拟机的基本结构如图所示     类加载子系统负责从文件系统或网络中加载Class信息,加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中可能还会存放运行是的常量池信息,包括字... 查看详情

jvm之类加载器加载过程及双亲委派机制

JVM的生命周期虚拟机的启动Java虚拟机的启动是通过引导类加载器(bootstrapclassloader)创建一个初始类(initialclass)来完成的,这个类是由虚拟机的具体实现指定的。虚拟机的执行一个运行中的Java虚拟机有着一个清晰的任务:执... 查看详情

jvm之类加载器加载过程及双亲委派机制

JVM的生命周期虚拟机的启动Java虚拟机的启动是通过引导类加载器(bootstrapclassloader)创建一个初始类(initialclass)来完成的,这个类是由虚拟机的具体实现指定的。虚拟机的执行一个运行中的Java虚拟机有着一个清晰的任务:执... 查看详情

寄存器由啥芯片组成

寄存器是芯片的组成部分,最简单的寄存器模型就是一个锁存单元,属于数电方面的知识,你可以看看数电的书或电子文档,希望对你有所帮助参考技术A寄存器没有什么芯片,他也是一种内存单元,常在一些微型计算机中使用,... 查看详情

关于虚拟机的启动项

参考技术A运行虚拟机按F2进入BIOS设置一下Boot---->HardDriver回车,通过键盘的【+】设置第一启动为VMwareVirtuanlSCSIHardDriveok--------------------------------------------------------------------------------无法从U盘启动..只可以从硬盘或者光盘或者IOS... 查看详情

初识jvm--java虚拟机的基本知识

...pc寄存器:(线程独有)保存线程运行的java方法地址Java虚拟接栈(线程独有):用于存储线程的栈帧Java堆(全局共享):随着Java虚拟机的启动创建存储着所有对象的实例以及数组对象,而且内置gc(垃圾回收机制)方法区:运行... 查看详情

vmware虚拟机的vmware虚拟机生命周期

参考技术A对于VMware虚拟机的管理工作其实从创建之前就已经开始了,这是一个需要管理员持续监控的长期计划。  尽管虚拟化技术能够大幅度提升计算资源的使用效率,但是事实上这些资源并不是免费的——无论VMware虚拟机... 查看详情

java虚拟机

jvm简称java虚拟机。jvm使用软件模拟java字节码的指令集。jvm规范:定义了        ---Class文件类型        ---运行时数据        ---帧栈        ----虚拟机的启动        ----虚拟机的... 查看详情

jvm基础知识

@目录1.Java虚拟机1.JVM的架构模型2.JVM的生命周期I.虚拟机的启动II.虚拟机的执行III.虚拟机的退出1.Java虚拟机Java虚拟机是一台执行Java字节码的虚拟计算机,它拥有独立的运行机制,其运行的Java字节码也未必由Java语言编译而成。JVM... 查看详情

pxe基于虚拟机的自启动

环境系统:centos6.4min版虚拟机实现:提供的服务器ip为192.168.0.105,桥接安装dhcp服务:  yum-yinstalldhcp配置dhcp服务,使能够成功启动:[[email protected]~]#cat/etc/dhcp/dhcpd.conf#optiondefinitionscommontoallsupportednetworks...optiondom 查看详情