以声明式UI统治一切
重要提示:代表默认设置的灰色条形柱非常高,因为 IDEA 在刷新过程中崩溃了,笔者无法测量实际时间。显然,默认分配的内存不足以执行该操作。 但从三个自定义例子中可以发现,大内存配置花费的时间是最短的。所以,内存分配还是起到了作用。 最后一次使用jstat-gcutil
因为 IDEA 在默认设置下无法刷新项目,所以,这次测试默认设置就不包括在里面。 正如上图所示,启动时间并不依赖于内存设置。Idea 在所有场景下的测试时间都是10秒,无论内存分配有多少。这并不足为奇,因为在此早期阶段,这些设置并不会影响到应用的行为。 加载大项目花费的时间现在加载 Monolith 项目及其70万行代码。终于,出现了一些的差异。默认设置所花费的时间几乎是其它的3倍。很明显,如此庞大的代码库需要更多的内存。如果我们执行:
会发现,对比其它设置, GC 在默认设置下会变得异常忙碌。 测试场景
jstat -gcutiljstat 是 JDK 自带的工具,主要利用 JVM 内建的指令对 Java 应用程序的资源和性能进行实时的命令行监控,还包括对 Heap size 和垃圾回收状况的监控。它有许多选项来收集各种数据(完整的文档),但这里只会用到:-gcutil : 这个命令的输出结果如下: 在本文中,最重要的参数是 GC 事件( YGC 和 FGC )次数和收集时间( YGCT 和 FGCT )。 测试设置笔者设置了四种不同的设置,为了好记,给它们起了不同的名字。 默认(灰色标识)JetBrains 提供的默认设置: Big(大)(红色标识)给 Xmx 配 4096MB, ReservedCodeCacheSize 设置 1024MB,这已经是相当多的内存了: Balanced(平衡的)(蓝色标识)Xmx 和 Xms 都分配 2GB ,这是相当平衡的内存消耗: Sophisticated(复杂的)(橘色标识)和上面一样, Xmx 和 Xms 都分配2GB,但是给 GC 和内存管理指定不同的垃圾回收器和许多不同的标志: 以上便是笔者的测试设置,为了执行该测试用例,还需要在~/Library/Preferences/IntelliJIdea15/下创建一个idea.vmoptions文件(这是 Mac OS 系统下的路径设置,查看这篇文章,基于你的操作系统进行设置) 现在,执行测试用例并比较结果。 结果Idea启动时间(编辑:常州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |