有时我听到人们谈论Java的启动时间。这似乎是一个重要的性能方面。但它到底是什么?
那么,第二个问题是
我不知道我的问题是否以正确的方式提出;如果没有,请告诉我。谢谢!
发布于 2012-06-14 17:35:31
启动时间没有正式定义。实际上,在实际信息技术中使用的大多数术语都没有正式定义。(或者忽略形式定义。)
但是粗略地说,这是从应用程序启动到准备做一些有用的事情的时间。启动期间所做的是依赖于应用程序的,但它包括静态类加载、静态类初始化以及(可能)一些类的JIT编译。其他事情可能包括启动UI、连接数据库、预装特定于应用程序的数据结构、应用程序“连接”等等。
尝试正式定义“启动时间”的问题是,任何定义都可能不适用于某些重要的应用程序类型子集。即使您可以定义它,在应用程序宣布自己为“就绪”之后,一些启动(或热身)任务可能会在后台继续发生。
(这不是Java特有的问题。考虑一下笔记本电脑的“启动”;也就是说,在打开它和桌面完全可用之间发生了什么。)
如何度量Java程序的启动时间?从哪一点到哪个点是持续时间称为启动时间?
这两个问题都取决于您正在讨论的应用程序的类型,以及您的希望将什么作为应用程序的启动阶段。
发布于 2012-06-20 13:36:53
正如Stephen所提到的,“启动时间”没有一个普遍的正式定义。
为了直观地理解这个概念,我在甲骨文网上找到了一些描述。
基本上,它给了一个非正式的定义。“应用程序的启动时间是应用程序启动和运行以及准备开始做它应该做的事情所需的时间。”无论是JVM还是应用程序本身都会影响启动时间。
此外,它还提供了一些想法(调整堆大小-Xms/-Xmx)以减少启动时间。堆大小过大或过小都会延长启动时间。
此外,"诊断一个缓慢的JVM启动“还提供了一些线索,可以找到创业速度缓慢的原因。
注意,上面的所有内容都在JRockit的上下文中,但是这些想法更普遍。
https://stackoverflow.com/questions/11043359
复制相似问题