跨平台IDE集成开发环境Clion入门教程(八):性能优化技巧
CLion是一款专为开发C及C++所设计的跨平台IDE。它是以IntelliJ为基础设计的,包含了许多智能功能来提高开发人员的生产力。这种强大的IDE帮助开发人员在Linux、OS X和Windows上来开发C/C++,同时它还使用智能编辑器来提高代码质量、自动代码重构并且深度整合CMake编译系统,从而提高开发人员的工作效率。
CLion现已更新至2019.2版本,新版本为嵌入式开发人员提供了更多帮助,并提高了几个重要方面的一般调试能力。编辑器现在具有参数名称提示,并且它具有改进的代码分析功能,为“未使用的包含”带回更新的检查。点击查看更新详情!
增加内存堆
启用内存指示灯
要检查性能下降是否是由于堆内存不足引起的,请在“设置/首选项” |“设置”中启用“ 显示内存指示符”选项。外观与行为| 外观。默认情况下,JVM和Clangd内存指示器都将显示在右下角:
调整-Xmx
要增加内存堆,请修改相应的JVM选项-Xmx:
转到帮助| 编辑自定义VM选项 -此操作将在IDE config目录中创建.vmoptions文件的副本,然后在编辑器中将其打开。
设置-Xmx更高的值。例如-Xmx4096m对于4 GB的值,而不是默认的2 GB。
重新启动CLion。
如果可用的堆内存量小于最大堆大小的5%,CLion也会警告您:
单击配置以-Xmx在“ 内存设置”对话框中进行编辑:
加快代码分析
过滤器的检查清单
动态代码分析是CLion中性能最消耗的过程之一。要减轻它的负担,请在“设置/首选项” |“设置”中缩短检查清单。
特别是,请考虑禁用“ 数据流分析”组,然后禁用“ 常规”。可简化的声明检查:
您将始终能够使用“ 代码| 在不影响编辑器的情况下,检查Code命令并在单独的工具窗口中浏览结果。另外,您可以通过设置“ 提交前”选项来推迟代码分析(以及即时重构)直到提交。
对于文件调分析
要更改当前打开文件的代码分析级别,请单击状态栏上的Hector图标或运行Code | 配置当前文件分析 Ctrl+Shift+Alt+H:
将滑块移到可用位置之一:
没有一个可以完全关闭突出显示;
语法,只显示语法问题;
检查(默认)以显示语法问题和检查问题。
切换省电模式
作为单独配置单个检查或文件的另一种选择,请尝试“ 省电模式”。它禁用了整个IDE的所有检查和其他耗时的后台任务。
要启用节电模式,请在Hector弹出窗口中设置相应的复选框(请参见上面的屏幕截图),或调用File | 省电模式。
检查基于Clangd引擎
CLion包含一个互补的基于Clangd的语言引擎,默认情况下启用。当前,它可用于错误/警告注释,某些导航任务,通过ClangFormat进行代码格式化以及带有快速修复的代码突出显示。
在大多数情况下,基于Clangd的引擎比内置引擎的运行速度更快(有时会提供更准确的结果)。但是,并非所有操作都使用它。例如,Clangd提供了快速修复的位置,而修复本身是由CLion自己的引擎执行的。或者,“ 查找用法”使用Clangd在编辑器中当前打开的文件以及CLion自己的引擎中搜索所有其他用法。
我们建议您在调查性能问题时考虑到Clangd引擎的特点。使用设置/首选项| 语言和框架| C / C ++ | 尝试试验引擎设置,看看它们是否影响某些任务的性能。
加快索引
排除目录和文件类型
默认情况下,CLion索引CMakeLists.txt中列出的所有目录(源和include_directories路径)以进行正确解析。同时,您的项目可能包含带有二进制文件,日志或构建构件的文件夹,这不会影响CLion的代码洞察力。同样,某些文件夹的索引由于其大小或位置而可能过于昂贵。因此,手动排除此类文件夹是合理的:在项目树中的目录上单击鼠标右键,然后选择“将目录标记为”。
由于CLion的排除文件中的符号仍未完成,因此以下功能不适用于此类文件:代码完成和自动导入(include_directories在CMakeLists.txt中用排除目录标记的情况除外),代码生成,查找在路径中(当前打开文件的范围除外),导航和重构。
从索引中消除日志或生成的数据之类的文件的另一种方法是在“设置” /“首选项” |“设置”中按文件类型排除它们 编辑器 档案类型:
较小的CMake子项目的工作
解析文件的范围由加载的CMake脚本确定。因此,如果您的项目被分成几个子目录,每个子目录中都有独立的CMakeLists.txt,则可以分别加载较小的子项目(为此,请在sub-CMakeLists.txt上运行Load CMake project):
当您只需要探索大项目的一部分时,另一种替代方法是创建一个编译数据库,将其缩减为感兴趣的部分,然后在CLion中作为项目打开。
避免使用_CLION_IDE__macro进行繁琐的解析
复杂的预处理器宏的解析过程中可能会发生IDE冻结。要从代码中消除此类有问题的定义,请使用__CLION_IDE__macro将其替换为一些虚拟的定义:
该macro仅影响解析,并且在生成或运行代码时未定义。
=====================================================
更多关于CLion的教程、资源敬请关注我们即将推出的后续教程哦~
想要购买Clion正版授权的朋友欢迎。
关注下方微信公众号吗,及时获取产品最新消息和最新资讯