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

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

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

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

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

那么,第二个问题是

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-15 01:35:31

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

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

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

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

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

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

票数 1
EN

Stack Overflow用户

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

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

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

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

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

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

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

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

https://stackoverflow.com/questions/11043359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档