针对给定文件中的内容,以下是对C++编程中一些陋习和性能优化知识点的详细梳理。 C++编程陋习: 1. class命名以大写C开头:这源于MFC时代,由于历史原因,早期为了区分C结构体和C++类,一些开发者会将类名用大写字母C开头,如CDate。然而随着C++的发展,这种做法已不再适用,显得不合时宜。 2. 成员变量以m_开头:这一命名方式同样受到MFC的影响,为了区分成员变量和局部变量。但现代编程建议采用更清晰的命名方式,如成员变量后加下划线,而不是前缀m_。 3. 变量采用匈牙利命名法:匈牙利命名法是一种变量命名约定,它结合了变量的类型和名称,例如使用前缀i表示整型(int)变量。但由于现代集成开发环境(IDE)提供了代码高亮和语法检查,匈牙利命名法已不再是必要选项。 4. 不知道何时禁用copy-ctor/assign operator:在C++中,拷贝构造函数(copy-ctor)和拷贝赋值操作符(assign operator)应根据实际情况决定是否需要禁用。例如,RAII(Resource Acquisition Is Initialization)模式的资源句柄类就不应支持拷贝构造和赋值操作,以防止资源的意外共享和泄漏。 C++编程技巧与规范: 1. Google、LLVM、Mozilla等公司采用Pascal风格(如EventLoop、SudokuSolver)的命名方式,并且遵循两个空格的缩进规则,可利用clang-format自动进行代码格式化。 2. 对于C++的特殊情况,如使用nullptr替代NULL的争论,以及使用cstdio头文件替代stdio.h的教条,作者表达了不认同的观点。作者认为,尽管nullptr提供了类型安全的优势,但在某些情况下使用NULL也足以满足需求,尤其是在老式系统API中。同样,头文件命名的混用通常不会造成实际问题,因此不必过分追求一致性。 3. 性能优化的误区:作者批评了一些程序员在性能优化上的短视行为,例如过分关注微观性能问题而忽视编译器优化,或者缺乏具体性能目标和准确性能数据测量的优化措施。他建议,应保持代码的可读性和可维护性,而非盲目的性能提升。 4. 可读性与性能的关系:性能优化应当在不损害代码可读性和可维护性的前提下进行。作者提出了一个理想的代码区域划分,建议开发者应避免过度优化,因为可能新硬件的出现就会使之前的优化变得多余。 5. 关于内存池的讨论:作者质疑了开发者自行实现内存池以提升性能的做法。他引用了专家Ulrich Drepper的观点,认为自行编写内存分配器的性能提升是有限的,更重要的是考虑实际应用场景和正确的性能测量方法。 6. 网络编程的讨论:作者提到了网络编程的不同范式,尤其是Unix风格与Windows风格的差异。他批评了使用Socket::select()的网络编程实践,因为它在每次调用时都会销毁和重建epollfd,这不符合高效网络编程的标准。 在综合考虑性能优化和编程规范的基础上,对于性能优化,应该有一个合理的性能目标,并通过具体的测量与验证来实施。代码的可读性和可维护性应该是在性能优化时需要重点考量的因素。在性能优化的决策中,避免盲目追求微观级别的性能,而应着眼于整体的系统性能和代码质量。
































- 粉丝: 4
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- [江苏]保障房工程塑钢门窗安装施工工艺.doc
- 大数据环境下企业决策管理的困境与对策.docx
- 国内销售部003.doc
- 启动水处理泵房施工方案.pdf
- 如何做好保温材料A级防火处理.docx
- 辅导班资料共11页理解记忆.doc
- 房屋建筑工程质量控制要点.doc
- 保利国际广场超高层方案78P.pdf
- 基于Spark的大数据分析工具Hive的研究.docx
- 单片机电子密码锁设计方案实验.doc
- 第五章--成本法及其应用.ppt
- 基于51单片机的数字温度计设计.doc
- 安全月活动计划.docx
- 12#、16#楼木工承包合同.doc
- 某钢筋混凝土倒锥壳保温水塔施工方案.doc
- 管网布置等水压线.doc


