首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Java虚拟机中,启动时间构成了什么?

在Java虚拟机中,启动时间构成了什么?
EN

Stack Overflow用户
提问于 2012-06-14 16:58:38
回答 2查看 389关注 0票数 7

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

  • 它是由什么组成的?
    1. 由动态类加载引起的类加载时间?
    2. 还是在只编译的JVM中第一次编译开销?
    3. 或者在Java程序执行的开始阶段引起“缓慢”的其他东西?

那么,第二个问题是

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-14 17:35:31

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

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

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

(这不是Java特有的问题。考虑一下笔记本电脑的“启动”;也就是说,在打开它和桌面完全可用之间发生了什么。)

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

这两个问题都取决于您正在讨论的应用程序的类型,以及您的希望将什么作为应用程序的启动阶段。

票数 1
EN

Stack Overflow用户

发布于 2012-06-20 13:36:53

正如Stephen所提到的,“启动时间”没有一个普遍的正式定义。

为了直观地理解这个概念,我在甲骨文网上找到了一些描述。

基本上,它给了一个非正式的定义。“应用程序的启动时间是应用程序启动和运行以及准备开始做它应该做的事情所需的时间。”无论是JVM还是应用程序本身都会影响启动时间。

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

此外,"诊断一个缓慢的JVM启动“还提供了一些线索,可以找到创业速度缓慢的原因。

注意,上面的所有内容都在JRockit的上下文中,但是这些想法更普遍。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11043359

复制
相关文章
java记录访问时间_在java中记录上次访问时间和上次修改时间?
访问时间正在改变.我建议你使用Thread.sleep(100)或其他东西,然后看看这个问题是否仍然存在.
全栈程序员站长
2022/09/08
1.3K0
如何改善应用程序在 Linux 中的启动时间
大多数 Linux 发行版在默认配置下已经足够快了。但是,我们仍然可以借助一些额外的应用程序和方法让它们启动更快一点。其中一个可用的这种应用程序就是 Preload。它监视用户使用频率比较高的应用程序,并将它们添加到内存中,这样就比一般的方式加载更快一点。因为,正如你所知道的,内存的读取速度远远快于硬盘。Preload 以守护进程的方式在后台中运行,并记录用户使用较为频繁的程序的文件使用相关的统计数据。然后,它将这些二进制文件及它们的依赖项加载进内存,以改善应用程序的加载时间。简而言之,一旦安装了 Preload,你使用较为频繁的应用程序将可能加载的更快。
用户8639654
2021/10/15
3.8K0
Java 虚拟机:什么是 Java
(点击上方公众号,可快速关注) 来源:五月的仓颉 , www.cnblogs.com/xrq730/p/4826691.html 前言 让我们来看一下Java的广告词,来自http://www.java.com/zh_CN/about/: 97%的企业桌面运行Java 美国有89%的桌面(或计算机)运行Java 全球有900万Java开发人员 开发人员的头号选择 排名第一的部署平台 有30亿部移动电话运行Java 100%的蓝光盘播放器附带了Java 有50亿张Java卡在使用 1.25亿台TV设备运行Ja
精讲java
2018/07/03
1.6K2
Java虚拟机:什么是Java
让我们来看一下Java的广告词,来自http://www.java.com/zh_CN/about/:
Java团长
2018/08/03
9300
什么是Java虚拟机_Java SDK
JAVASDK就是JDK,JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。
全栈程序员站长
2022/11/07
5080
Java获取当日的起始时间,结束时间,现在时间,是否在时间段中。
当日的起始时间 public static Date getTodayStartTime() { Calendar todayStart = Calendar.getInstance(); todayStart.set(Calendar.HOUR_OF_DAY, 0); todayStart.set(Calendar.MINUTE, 0); todayStart.set(Calendar.SECOND, 0); return
ydymz
2018/09/10
2.1K0
在程序中时间旅行
三年前,当我写下那篇青涩的『永恒不变的魅力』的文章时,我刚刚是 elixir 和 clojure 的入门者。我如饥似渴地从 Bret Victor,Rich Hickey 等人身上吸取思想和力量,来浇筑我对函数式编程的信仰。函数式编程语言中有诸多让人赞不绝口的设计思想,但 immutability(不可变)显然是皇冠上的明珠。它让我们可以肆无忌惮地使用并发,不必考虑 lock,因为没有 critical section 可言;它让我们不必再终日在野指针造成的 segment fault,坏引用导致的 exception 中彷徨哀怨甚至自戕。当我们用一个产品的时候,确定性让我们感到安全和愉悦 —— 你使用微信,发给朋友的信息如果代表发送的小菊花停了没有惊叹号,那就一定成功了,这就是确定性;immutable 给程序员带来的确定性是:我给你一个引用,只要你拿着,就算到了天荒地老,海枯石烂它也能够访问,且还守候着原来的值。
tyrchen
2018/12/07
7550
Java 虚拟机栈是什么?
Java虚拟机栈是Java虚拟机运行时数据区的一部分,用于存储方法执行的局部变量、操作数栈、动态链接、方法出口等信息。每个线程在执行Java程序时都有一个自己的Java虚拟机栈,用于存储方法执行的信息。
用户1289394
2023/08/22
1500
Java 虚拟机栈是什么?
Java中​new关键字在虚拟机中是如何执行的?
如果Java堆中的内存是绝对规整的,所有用过的内存都放在一边,空闲的内存放在另一边,中间放着一个指针作为分界点的指示器,那所分配内存就仅仅是把那个指针向空闲空间那边揶动一段与对象大小相等的距离,这种分配方式称为“指针碰撞”(Bump the Pointer)。
业余草
2021/12/06
8650
Java中​new关键字在虚拟机中是如何执行的?
什么是java虚拟机(Java Virtual Machine)?
马上就要找实习了,趁着现在有时间,做个小小的面试总结,部分原创,大部分是在网上搜集。
全栈程序员站长
2022/09/08
2K0
什么是java虚拟机(Java Virtual Machine)?
在java中println什么意思_java printf与println
在java中,System.out.println()是我们经常会用到的一个语法,它的作用是将值输出显示在console窗口中,这样程序员就可以在console窗口中看到代码运行的结果。而除了System.out.println()之外,还有其他的打印结果的方法。
全栈程序员站长
2022/11/09
1.8K0
在java中println什么意思_java printf与println
java中finally有什么意义呢,在现实中?举例
马克-to-win: finally有什么意义呢,在现实中?比如你开了一个流处理文件,可能没开成功,或开成功了,但后面的操作失败了,但不管你怎么样,你必须在一个地儿把它关闭,那就是finally块儿。
马克java社区
2021/04/08
4720
java中finally有什么意义呢,在现实中?举例
什么是JWT及在JAVA中如何使用?
在不使用JWT的情况下,我们一般选择的是cookie和session来进行服务鉴权(判断是否登录,是否具有某种权限),但是这是针对于只有一个客户端的情况下,现在客户端从pc端增长到了app端,现在就是多端访问了。
叫我阿杰好了
2022/11/07
3.1K0
什么是JWT及在JAVA中如何使用?
java date当前时间_JAVA中获取当前系统时间
public static void main(String[] args) {
全栈程序员站长
2022/11/02
4.7K0
什么是线程组,为什么在 Java 中不推荐使用?
线程组是使用 Java 线程进行管理和组织的一种模型。Java 中的线程组是一个 ThreadGroup 类对象,它充当了一个父容器,可以将同一类线程分成一组,并提供追踪这些线程状态、统计信息及管理这些线程的方法。在线程组中,如果发生未捕获异常,可以通过 Thread.UncaughtExceptionHandler 进行处理。
用户1289394
2023/08/22
3380
什么是线程组,为什么在 Java 中不推荐使用?
Java中获取时间戳
** 最近项目开发过程中发现了项目中获取时间戳的业务。而获取时间戳有以下三种方式,首先先声明推荐使用System类来获取时间戳,下面一起看一看三种方式。
全栈程序员站长
2022/08/18
2.6K0
a b在java中的意思是什么意思_java中”a=”+a “b=”+b是什么意思?
1、在JAVA程序中由String和“+”参与的运算变量都会被转为字符类型,可以理解为先把32313133353236313431303231363533e4b893e5b19e31333335313237变量转为字符型然后在进行字符拼接。
全栈程序员站长
2022/09/08
17K0
a b在java中的意思是什么意思_java中”a=”+a “b=”+b是什么意思?
Nova虚拟机启动
本来这一节打算写Neutron中各个OVS上的流表逻辑的,突然想起来之前学习Neutron时深入研究过的一个问题——虚拟机接入OVS是如何实现的?既然流表是为了虚拟机通信用的,那么没有虚拟机的接入,流表也就没有了用武之地。因此,本节就来讲一讲OpenStack中虚拟机启动过程中,是如何获取MAC、IP地址,如何在Neutron上绑定port,以及如何获取IP地址的。这一节就当做是对上一节“Neutron的软件实现”的一个补充吧。 从头开始讲。虚拟机的启动通常来自于控制节点命令行的nova boot,该命令被
SDNLAB
2018/04/02
1.5K0
Nova虚拟机启动
虚拟机无法启动
由于kvm所在的机器启用了SELINUX,后来将之关闭,关闭之后,发现kvm的虚拟机无法启动
后端云
2018/10/24
2K0
java解释器虚拟机-Java代码如何运行在Java虚拟机中
  我们都知道要运行Java代码就必须要有JRE,也就是Java运行时环境,JRE中包含了Java程序的必需组件,包括Java虚拟机以及Java核心类库,然而运行C++代码则不需要额外的运行时环境,只需要把代码编译成CPU能识别的指令即可,也就是机器码.那为什么Java不直接像C++那样而需要在虚拟机中运行呢?他在虚拟机中又是如何运行的?接着往下看.
宜轩
2022/12/26
5830

相似问题

如何减少OpenJDK Java8虚拟机的启动时间?

11

Java虚拟机启动问题

11

Java虚拟机启动程序Eclipse

22

17.2 -无法启动Java虚拟机

23

在非工作时间启动/停止虚拟机- Azure

123
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文