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

简介:
今晚又折腾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)

相关文章
|
16天前
|
Web App开发 缓存 监控
内存溢出与内存泄漏:解析与解决方案
本文深入解析内存溢出与内存泄漏的区别及成因,结合Java代码示例展示典型问题场景,剖析静态集合滥用、资源未释放等常见原因,并提供使用分析工具、优化内存配置、分批处理数据等实用解决方案,助力提升程序稳定性与性能。
352 1
|
4月前
|
缓存 监控 Cloud Native
Java Solon v3.2.0 高并发与低内存实战指南之解决方案优化
本文深入解析了Java Solon v3.2.0框架的实战应用,聚焦高并发与低内存消耗场景。通过响应式编程、云原生支持、内存优化等特性,结合API网关、数据库操作及分布式缓存实例,展示其在秒杀系统中的性能优势。文章还提供了Docker部署、监控方案及实际效果数据,助力开发者构建高效稳定的应用系统。代码示例详尽,适合希望提升系统性能的Java开发者参考。
193 4
Java Solon v3.2.0 高并发与低内存实战指南之解决方案优化
|
8月前
|
监控 Java 计算机视觉
Python图像处理中的内存泄漏问题:原因、检测与解决方案
在Python图像处理中,内存泄漏是常见问题,尤其在处理大图像时。本文探讨了内存泄漏的原因(如大图像数据、循环引用、外部库使用等),并介绍了检测工具(如memory_profiler、objgraph、tracemalloc)和解决方法(如显式释放资源、避免循环引用、选择良好内存管理的库)。通过具体代码示例,帮助开发者有效应对内存泄漏挑战。
393 1
|
11月前
|
存储 架构师 Java
内存溢出原因与解决方案(4大主流方案详解)
本文详解内存溢出(OOM)的原因及解决方案。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
内存溢出原因与解决方案(4大主流方案详解)
|
10月前
|
运维 监控 Java
为何内存不够用?微服务改造启动多个Spring Boot的陷阱与解决方案
本文记录并复盘了生产环境中Spring Boot应用内存占用过高的问题及解决过程。系统上线初期运行正常,但随着业务量上升,多个Spring Boot应用共占用了64G内存中的大部分,导致应用假死。通过jps和jmap工具排查发现,原因是运维人员未设置JVM参数,导致默认配置下每个应用占用近12G内存。最终通过调整JVM参数、优化堆内存大小等措施解决了问题。建议在生产环境中合理设置JVM参数,避免资源浪费和性能问题。
668 3
|
11月前
|
NoSQL 编译器 C语言
C语言调试是开发中的重要技能,涵盖基本技巧如打印输出、断点调试和单步执行,以及使用GCC、GDB、Visual Studio和Eclipse CDT等工具。
C语言调试是开发中的重要技能,涵盖基本技巧如打印输出、断点调试和单步执行,以及使用GCC、GDB、Visual Studio和Eclipse CDT等工具。高级技巧包括内存检查、性能分析和符号调试。通过实践案例学习如何有效定位和解决问题,同时注意保持耐心、合理利用工具、记录过程并避免过度调试,以提高编程能力和开发效率。
314 1
|
Web App开发 缓存 JavaScript
技术分享:深入探索内存泄漏——识别、分类与解决方案
【8月更文挑战第27天】在软件开发的浩瀚星海中,内存管理始终是程序员们必须面对的重要课题。内存泄漏,作为内存管理不善的典型症状,不仅影响应用性能,还可能导致系统崩溃,是每位开发者都需警惕的“暗礁”。本文将带您深入探索内存泄漏的本质、常见类型及有效的解决策略,助力您的工作学习之旅更加顺畅。
156 0
|
存储 缓存 NoSQL
Redis是一种高性能的内存数据库,常用于高并发环境下的缓存解决方案
【6月更文挑战第18天】**Redis摘要:** 高性能内存数据库,擅长高并发缓存。数据存内存,访问迅速;支持字符串、列表等多元数据类型;具备持久化防止数据丢失;丰富命令集便于操作;通过节点集群实现数据分片与负载均衡,增强可用性和扩展性。理想的缓存解决方案。
214 1
|
设计模式 安全 Java
Java面试题:请列举三种常用的设计模式,并分别给出在Java中的应用场景?请分析Java内存管理中的主要问题,并提出相应的优化策略?请简述Java多线程编程中的常见问题,并给出解决方案
Java面试题:请列举三种常用的设计模式,并分别给出在Java中的应用场景?请分析Java内存管理中的主要问题,并提出相应的优化策略?请简述Java多线程编程中的常见问题,并给出解决方案
278 0
|
监控
LabVIEW程序内存泄漏分析与解决方案
LabVIEW程序内存泄漏分析与解决方案
532 0