Eclipse/CDT速度慢,占用内存大的问题的可用解决方案

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:
今晚又折腾CDT几个小时,差不多有点思路,就个人的体会归纳一下,说得不对之处,还请大家指正。我的环境是Eclipse3.1.1, CDT 3.0.1, jdk 1.5.0.06, linux fc4, gcc 4.0。别的环境没试过。

CDT有很多性能/内存方面的陷阱,
(1)indexer。CDT的有些功能需要indexer(我也不知道是哪些功能需要它,反正有人这么说),我做过试验,一个500多个cpp文件的项 目的full indexer大约需要1个小时。CDT安装后,默认indexer是打开的。如果你只写小程序,可以不管它。如果要写中,大型开发,最好关掉它。关掉方 式:选择具体的项目,右键->properties->C/C++ Indexer,选择No Indexer。或者一安装CDT插件,就在Windows->Preferences->C/C++->Indexer中,选择No Indexer。

(2)CDT默认有个选项"Follow #include's when parsing working copies"是选中的,当你打开一个源文件时,该文件include的所有文件它都要解析一遍。影响了速度。关掉这个选项后,CDT开发就和java开 发速度上感觉不出来差别了。关掉方法:Windows->Preferences->C/C++->去掉"Follow......" 那项。

(3)关掉(2)中所说的那个选项可能会影响到smart insert,也就是自动提示功能。CDT(至少在我的环境下)这里有一个巨大无比的Bug,就是对include文件的解析经常出现问题。如果选中 (2)中所说的那个选项,许多文件的解析不完整(从右边outline那里可以发现),不知道它怎么解析的,反正usr/include中许多头文件都解 析不成功。单是解析不成功还好啊,问题是,一旦你编辑include这些文件的源文件,一旦你输入了.,->,或::,哈哈哈哈,等等吧,至少5分 钟才会出结果,然后你的内存耗用会增加100M以上,如果再打一个这三个东东,再次等待,再次内存泄漏。google上有人问,cdt咋占我1G的内存 呢?选中(2)那个选项还有一个问题,就是泛型解析不出来。关掉(2)中的那个选项,会发现,outline中源文件的解析完全正确。不过,内存泄漏还是 会出现,这时需要关掉Auto activation一项。关掉后就没问题了,只是不能自动提示/完成成员项了。关掉方法:Windows->Preferences-> C/C++->Editor->Code Assist,把Auto activation下面3个框中的勾去掉。

这样性能表现差不多就和JDT差不多了。代价是不能使用自动提示/完成这一现代IDE的基本功能。但是,和Linux环境下其它IDE相比, Eclipse/CDT在界面,易用性方面要强太多。例如UI的人性化,代码阅读,代码模板,与SVN/CVS的集成,这时偶喜欢CDT的几点。

最后来点煽情的:

Eclipse书商有一句话:Eclipse颠倒Java众生。其实,何止Java众生,连不成熟的CDT都迷倒了许多人。象偶这种以前用. net/C#,同时极度讨厌C++的人,便因为eclipse及其易用性上的设计,还有相关的文化而开始喜欢上了Java和C++的开发,能够在编程中感 觉到诗一般的魅力。

本文转自xiaotie博客园博客,原文链接http://www.cnblogs.com/xiaotie/archive/2006/02/09/327402.html如需转载请自行联系原作者


xiaotie 集异璧实验室(GEBLAB)

相关文章
|
9月前
|
Java Android开发
提示Eclipse内存
提示Eclipse内存
|
2月前
|
运维 监控 Java
为何内存不够用?微服务改造启动多个Spring Boot的陷阱与解决方案
本文记录并复盘了生产环境中Spring Boot应用内存占用过高的问题及解决过程。系统上线初期运行正常,但随着业务量上升,多个Spring Boot应用共占用了64G内存中的大部分,导致应用假死。通过jps和jmap工具排查发现,原因是运维人员未设置JVM参数,导致默认配置下每个应用占用近12G内存。最终通过调整JVM参数、优化堆内存大小等措施解决了问题。建议在生产环境中合理设置JVM参数,避免资源浪费和性能问题。
128 3
|
3月前
|
存储 架构师 Java
内存溢出原因与解决方案(4大主流方案详解)
本文详解内存溢出(OOM)的原因及解决方案。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
内存溢出原因与解决方案(4大主流方案详解)
|
3月前
|
NoSQL 编译器 C语言
C语言调试是开发中的重要技能,涵盖基本技巧如打印输出、断点调试和单步执行,以及使用GCC、GDB、Visual Studio和Eclipse CDT等工具。
C语言调试是开发中的重要技能,涵盖基本技巧如打印输出、断点调试和单步执行,以及使用GCC、GDB、Visual Studio和Eclipse CDT等工具。高级技巧包括内存检查、性能分析和符号调试。通过实践案例学习如何有效定位和解决问题,同时注意保持耐心、合理利用工具、记录过程并避免过度调试,以提高编程能力和开发效率。
72 1
|
6月前
|
Web App开发 缓存 JavaScript
技术分享:深入探索内存泄漏——识别、分类与解决方案
【8月更文挑战第27天】在软件开发的浩瀚星海中,内存管理始终是程序员们必须面对的重要课题。内存泄漏,作为内存管理不善的典型症状,不仅影响应用性能,还可能导致系统崩溃,是每位开发者都需警惕的“暗礁”。本文将带您深入探索内存泄漏的本质、常见类型及有效的解决策略,助力您的工作学习之旅更加顺畅。
67 0
|
8月前
|
存储 缓存 NoSQL
Redis是一种高性能的内存数据库,常用于高并发环境下的缓存解决方案
【6月更文挑战第18天】**Redis摘要:** 高性能内存数据库,擅长高并发缓存。数据存内存,访问迅速;支持字符串、列表等多元数据类型;具备持久化防止数据丢失;丰富命令集便于操作;通过节点集群实现数据分片与负载均衡,增强可用性和扩展性。理想的缓存解决方案。
103 1
|
7月前
|
设计模式 安全 Java
Java面试题:请列举三种常用的设计模式,并分别给出在Java中的应用场景?请分析Java内存管理中的主要问题,并提出相应的优化策略?请简述Java多线程编程中的常见问题,并给出解决方案
Java面试题:请列举三种常用的设计模式,并分别给出在Java中的应用场景?请分析Java内存管理中的主要问题,并提出相应的优化策略?请简述Java多线程编程中的常见问题,并给出解决方案
146 0
|
7月前
|
监控
LabVIEW程序内存泄漏分析与解决方案
LabVIEW程序内存泄漏分析与解决方案
220 0
|
9月前
|
Java
Handler内存泄漏原因及解决方案
Handler内存泄漏原因及解决方案
93 0
|
9月前
|
存储 缓存 监控
Linux系统内存下降:原因、诊断与解决方案
Linux系统内存下降:原因、诊断与解决方案
209 0

推荐镜像

更多