- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章IntelliJ IDEA 性能优化的教程详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
idea打开的多了 内存占用也就多了 下边是亲试的优化ide性能的方法 。
1.设置jvm的启动参数:
进入idea的安装目录的bin文件夹 。
打开 idea.exe.vmoptions 文件, 修改-xmx 的 值为2048m 。
打开 idea64.exe.vmoptions 文件, 修改-xmx 的 值为2048m 。
打开idea.properties文件,找到idea.max.intellisense.filesize,默认是2500,改为25000(数值仅供参考,具体数值根据自己文件大小来定) 。
参数作用:
-xms1024m 设置初时的内存大小,提高java程序的启动速度 -xmx2048m 设置最大内存数,提高该值,可以减少内存garage收集的频率,提高程序性能 -xx:reservedcodecachesize=480m设置代码内存容量 -xx:+useparnewgc 使用并行收集算法 -server 控制内存garage方式,这样你无需在花一到两分钟等待内存garage的收集 。
2.菜单配置设置jvm的启动参数:通过help - edit custom vm options...菜单设置配置,intellij会优先使用这个地方的配置文件 。
3.关闭代码检查: 。
intellij的代码检测功能非常强大,但也占用了一些资源,可以将默认的除 error之外的其他级别的检测都去掉 。
4.清空缓存并重建索引:
将编译进程和maven的堆值设置大一些 。
ps:下面看下intellij idea 更新后,电脑卡成球,该如何优化?
来源 | https://urlify.cn/nbbbam 。
在和同事的一次讨论中发现,对 intellij idea 内存采用不同的设置方案,会对 ide 的速度和响应能力产生不同的影响.
don't be a scrooge and give your ide some more memory 。
不要做守财奴,给ide多留点内存吧.
昨天,大家就是否自定义intellij idea 的内存设置进行了讨论,有些人选择默认设置,有些人会对默认的设置进行简单的变更,还有一些开发者会基于他们的需求进行全面复杂的设置。笔者目前的工作是处理几个微服务项目和一个老项目,而客户的核心业务需求非常大。对 intellij idea 内存进行简单设置以后,笔者明显感受到了该 ide 在速度和响应方面的改善。但当时笔者并未进行具体的测量,所以这只是主观感受而已.
不过,参与讨论的一位开发者给笔者发了一份他的设置,虽然是针对同个项目,该设置却极其复杂。笔者对自己的设置并无不满,但非常好奇,这些完全不同的设置对比 jetbrains 提供的默认设置,会有怎样的不同.
目标 。
笔者的计划是,在一个接近日常开发项目的场景下(加载一个大项目、加载2、3个微服务、git pull 后刷新大项目),测试各个设置带来的效果,并选出内存消耗和速度都达到最优时的最佳设置.
测试机器和项目 。
笔记本电脑:macbook pro retina, 2.3ghz intel core i7, 16gb 1600mhz ddr3,ssd disc, os x yosemite 。
项目 。
大项目—— monolith ,70万行代码( java[1] 8 和 groovy ),303个gradle模块 。
两个微服务——约有10000——20000行代码( java 8 和 groovy )的小项目,各有一个gradle模块 。
测试场景 。
jstat -gcutil 。
jstat 是 jdk 自带的工具,主要利用 jvm 内建的指令对 java 应用程序的资源和性能进行实时的命令行监控,还包括对 heap size 和垃圾回收状况的监控。它有许多选项来收集各种数据,但这里只会用到: 。
-gcutil
-gcutil - summary of garbage collection statistics. s0: survivor space 0 utilization as a percentage of the space's current capacity. s1: survivor space 1 utilization as a percentage of the space's current capacity. e: eden space utilization as a percentage of the space's current capacity. o: old space utilization as a percentage of the space's current capacity. m: metaspace utilization as a percentage of the space's current capacity. ccs: compressed class space utilization as a percentage. ygc: number of young generation gc events. ygct: young generation garbage collection time. fgc: number of full gc events. fgct: full garbage collection time. gct: total garbage collection time. 。
这个命令的输出结果如下:
s0 s1 e o m ccs ygc ygct fgc fgct gct 89.70 0.00 81.26 74.27 95.68 91.76 40 2.444 14 0.715 3.159 。
在本文中,最重要的参数是 gc 事件( ygc 和 fgc )次数和收集时间( ygct 和 fgct ).
测试设置 。
笔者设置了四种不同的设置,为了好记,给它们起了不同的名字.
默认(灰色标识) 。
jetbrains 提供的默认设置:
-xms128m -xmx750m -xx:maxpermsize=350m -xx:reservedcodecachesize=240m -xx:+usecompressedoops 。
big(大)(红色标识) 。
给 xmx 配 4096mb, reservedcodecachesize 设置 1024mb,这已经是相当多的内存了:
-xms1024m -xmx4096m -xx:reservedcodecachesize=1024m -xx:+usecompressedoops 。
balanced(平衡的)(蓝色标识) 。
xmx 和 xms 都分配 2gb ,这是相当平衡的内存消耗:
-xms2g -xmx2g -xx:reservedcodecachesize=1024m -xx:+usecompressedoops 。
sophisticated(复杂的)(橘色标识) 。
和上面一样, xmx 和 xms 都分配2gb,但是给 gc 和内存管理指定不同的垃圾回收器和许多不同的标志:
-server -xms2g -xmx2g -xx:newratio=3 -xss16m -xx:+useconcmarksweepgc -xx:+cmsparallelremarkenabled -xx:concgcthreads=4 -xx:reservedcodecachesize=240m -xx:+alwayspretouch -xx:+tieredcompilation -xx:+usecompressedoops -xx:softreflrupolicymspermb=50 -dsun.io.usecanoncaches=false -djava.net.preferipv4stack=true -djsse.enablesniextension=false -ea 。
以上便是笔者的测试设置,为了执行该测试用例,还需要在~/library/preferences/intellijidea15/下创建一个idea.vmoptions文件(这是 mac os 系统下的路径设置,基于你的操作系统进行设置) 。
现在,执行测试用例并比较结果.
结果idea启动时间 。
正如上图所示,启动时间并不依赖于内存设置。idea 在所有场景下的测试时间都是10秒,无论内存分配有多少。这并不足为奇,因为在此早期阶段,这些设置并不会影响到应用的行为.
加载大项目花费的时间 。
现在加载 monolith 项目及其70万行代码。终于,出现了一些的差异。默认设置所花费的时间几乎是其它的3倍。很明显,如此庞大的代码库需要更多的内存。如果我们执行:
jstat -gcutil <idea_pid> 。
会发现,对比其它设置, gc 在默认设置下会变得异常忙碌.
不仅 gc 释放内存的总时间非常高(几乎达到了50倍),而且 full gc 的平均执行时间也非常非常长。大量的时间都花在了 full gc 上面,这是 ide 响应速度低的主要原因.
在idea中打开两个微服务 。
现在加载这两个微服务项目,在 idea 中打开并且对比他们所消耗的时间.
在这个测试用例下,差异还是非常明显的,复杂设置表现最佳,而默认设置仍旧输给了其他两种设置.
再次使用jstat –gcutil 。
加载完两个微服务项目后,来检查一下同时打开3个项目的情况下, gc 的表现情况。经测试发现,3个不同的自定义设置表现几乎差不多,而默认设置简直弱爆了.
最后的角逐:重新加载monolith 。
现在,笔者需要从仓库中获得 monolith 项目的最新版本,并且刷新 gradle 模块,这样, idea 能看到所有的新类.
重要提示:代表默认设置的灰色条形柱非常高,因为 idea 在刷新过程中崩溃了,笔者无法测量实际时间。显然,默认分配的内存不足以执行该操作.
但从三个自定义例子中可以发现,大内存配置花费的时间是最短的。所以,内存分配还是起到了作用.
最后一次使用jstat-gcutil 。
因为 idea 在默认设置下无法刷新项目,所以,这次测试默认设置就不包括在里面.
从上图可以看出,三者之间的差异不大,但是 big 配置下的 full gc 执行时间最快。此外, xmx 内存大些对响应能力提升的帮助非常明显.
总结 。
在这次简短的实验中,大家可以发现,即使对 intellij idea 内存进行微调,都可以大大提升 ide 性能。当然,内存分配越多,执行效果就越好。但是,你也会发现, ide 之外许多其他应用程序也需要消耗内存,所以,大家的目标应该是在提高性能和内存消耗之间找到一个平衡。笔者认为,在大多数情况下,把 xmx 值设置在 2g 和 3g 之间是最佳的。如果你有更多的时间可以用 jstat 和 jvisualm 检查用不同的 jvm 设置如何影响性能和内存占用.
到此这篇关于intellij idea 更新后电脑卡成球该如何优化的文章就介绍到这了,更多相关intellij idea更新电脑卡内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。
原文链接:https://blog.csdn.net/u013256816/article/details/105942130/ 。
最后此篇关于IntelliJ IDEA 性能优化的教程详解的文章就讲到这里了,如果你想了解更多关于IntelliJ IDEA 性能优化的教程详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
比较代码: const char x = 'a'; std::cout > (0C310B0h) 00C3100B add esp,4 和 const i
您好,我正在使用 Matlab 优化求解器,但程序有问题。我收到此消息 fmincon 已停止,因为目标函数值小于目标函数限制的默认值,并且约束满足在约束容差的默认值范围内。我也收到以下消息。警告:矩
处理Visual Studio optimizations的问题为我节省了大量启动和使用它的时间 当我必须进行 J2EE 开发时,我很难回到 Eclipse。因此,我还想知道人们是否有任何提示或技巧可
情况如下:在我的 Excel 工作表中,有一列包含 1-name 形式的条目。考虑到数字也可以是两位数,我想删除这些数字。这本身不是问题,我让它工作了,只是性能太糟糕了。现在我的程序每个单元格输入大约
这样做有什么区别吗: $(".topHorzNavLink").click(function() { var theHoverContainer = $("#hoverContainer");
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: What is the cost of '$(this)'? 我经常在一些开发人员代码中看到$(this)引用同一个
我刚刚结束了一个大型开发项目。我们的时间紧迫,因此很多优化被“推迟”。既然我们已经达到了最后期限,我们将回去尝试优化事情。 我的问题是:优化 jQuery 网站时您要寻找的最重要的东西是什么。或者,我
所以我一直在用 JavaScript 编写游戏(不是网络游戏,而是使用 JavaScript 恰好是脚本语言的游戏引擎)。不幸的是,游戏引擎的 JavaScript 引擎是 SpiderMonkey
这是我在正在构建的页面中使用的 SQL 查询。它目前运行大约 8 秒并返回 12000 条记录,这是正确的,但我想知道您是否可以就如何使其更快提出可能的建议? SELECT DISTINCT Adve
如何优化这个? SELECT e.attr_id, e.sku, a.value FROM product_attr AS e, product_attr_text AS a WHERE e.attr
我正在使用这样的结构来测试是否按下了所需的键: def eventFilter(self, tableView, event): if event.type() == QtCore.QEven
我正在使用 JavaScript 从给定的球员列表中计算出羽毛球 double 比赛的所有组合。每个玩家都与其他人组队。 EG。如果我有以下球员a、b、c、d。它们的组合可以是: a & b V c
我似乎无法弄清楚如何让这个 JS 工作。 scroll function 起作用但不能隐藏。还有没有办法用更少的代码行来做到这一点?我希望 .down-arrow 在 50px 之后 fade out
我的问题是关于用于生产的高级优化级联样式表 (CSS) 文件。 多么最新和最完整(准备在实时元素中使用)的 css 优化器/最小化器,它们不仅提供删除空格和换行符,还提供高级功能,如删除过多的属性、合
我读过这个: 浏览器检索在 中请求的所有资源开始呈现 之前的 HTML 部分.如果您将请求放在 中section 而不是,那么页面呈现和下载资源可以并行发生。您应该从 移动尽可能多的资源请求。
我正在处理一些现有的 C++ 代码,这些代码看起来写得不好,而且调用频率很高。我想知道我是否应该花时间更改它,或者编译器是否已经在优化问题。 我正在使用 Visual Studio 2008。 这是一
我正在尝试使用 OpenGL 渲染 3 个四边形(1 个背景图,2 个 Sprite )。我有以下代码: void GLRenderer::onDrawObjects(long p_dt) {
我确实有以下声明: isEnabled = false; if(foo(arg) && isEnabled) { .... } public boolean foo(arg) { some re
(一)深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(no
一、写在前面 css的优化方案,之前没有提及,所以接下来进行总结一下。 二、具体优化方案 2.1、加载性能 1、css压缩:将写好的css进行打包,可以减少很多的体积。 2、css单一样式:在需要下边
我是一名优秀的程序员,十分优秀!