C++程序设计中的时间性能优化探讨

2018-12-25 10:43昝道广梁肖裕刘忠青徐西彤李晨辉山东科技大学电气信息系
数码世界 2018年6期
关键词:指针程序设计代码

昝道广 梁肖裕 刘忠青 徐西彤 李晨辉 山东科技大学电气信息系

随着计算机硬件的不断更新升级,其内存因素对于计算机硬件的影响越来越小,已经不能限制程序计算的完善。应用程序在计算机占有空间越来越富裕,程序在使用中不再首要考虑内存因素。但是程序设计的时间性能在很多应用场合依然发挥重要价值,例如实时嵌入式系统、需要处理大量的信息数据情景和对程序运行速度要求高的情景等等。

1 C++概述

C++语言是一种能够同时支持多种编程语言的编程语言集合。在具体程序设计过程中,为发挥其功能的灵活性,未在编译器生成的程序中显现出相应的数据结构和代码。程序设计人员无法在载体上看到数据结构和代码,只有凭借自身积累的实践经验,软件工程师才会全面系统了解编译器自动生成的代码时机和条件,因此很难把握C++程序的时间性能和空间性能。C++是在C语言的基础上演化而来,它具有C语言的应用优势,同时弥补了C语言的缺陷,很多C语言不能支撑的软件开发、系统开发和引擎开发,都可以使用C++。现阶段,计算机硬件的运行速度越来越快,设计内存空间也越来越大,需要引起注意的是对时间性能的优化方面,还需要进一步在程序设计中加以优化改进。

2 C++程序设计中的时间性能优化

2.1 合理使用inline

Inline函数在程序编译过程中,由调用指令转变为函数体代码,即在编译后的可执行文件中,将原本需要调用函数的场合,更改为该函数的代码,直接减少了函数调用过程中的进栈和出栈操作步骤,因此提升了程序运行中的时间性能。以下为通过合理使用inline来优化时间性能的分析。直接在调用处插入函数代码,使得程序编译对代码上下文信息有更加深入的了解,发挥出这些信息的支持作用,帮助人们利用编译器来优化代码,但是我们并不详细了解优化流程和优化内容。如果不使用inline程序执行到函数调用位置,需要具体执行函数体所在地方的代码。一般函数调用位置和函数代码所在地方并不接近,容易造成操作系统的缺页中断,而在要求操作系统将缺页位置处的代码移植到硬盘内存时,需要消耗的时间就会呈现数量级增加情况,但是在使用inline的情况下就会降低缺页中断的发生率。

2.2 谨慎使用虚函数

C++语言是从C语言的基础上发展和演化而来的程序设计语言,C++语言具有鲜明的特性和典型特征,例如虚函数和C++的虚函数都是多态场合下运行,实现了很多程序设计的优化和升级,创新出这种功能的新用法,但是并非完全都是优势而不存在缺陷,由于虚函数的使用会加强更大空间压力和时间压力,降低了程序的空间性能和时间性能。因此在具体程序设计和运行过程中,特定的虚函数类对应特定的虚函数表,函数表上主要保存的是函数指针,每次对虚函数进行实例化操作后就增加相应的虚函数表数量,这一过程耗费一定量的时间和空间。谨慎使用虚函数,减少降低程序时间性能的机会,考虑其它办法以此保障程序设计中的时间性能。

2.3 合理使用智能指针

C++程序中经常使用到指针类型。如果能够在适当场合下合理使用指针,不仅可以节省大量内存,而且还有助于节省运行时间。例如,如果需要将众多复杂的信息保存在程序内部,我们需要将一个信息单元保存在单项种类中,然后对这种类型的对象保存在特定的某种STL容器内部。如果是直接保存对象,一方面会让单项个体信息存储在多个对象中,浪费了大量的内存空间;另一方面选择对象无论是从容器中存人或者是取出都需要大量的运行时间。但是如果将指针作为存储对象,那么对应的信息单元仅仅需要个体对象保存完成,并且指针从容器中存入和取出的时间性能效率更高。但是由于指针容易导致内存泄露,不方便软件设计。因此软件工程师必须明确控制指针在特定的时间内被释放,如果没有将泄露内存,并且对程序产生异常。

3 结语

综上所述,时间性能优化是C++程序设计中保证开发质量的必然要求,同时也是衡量的重要指标。在空间性能已经不再成为限制性因素的情况下,软件设计的更多精力应该集中于程序时间性能优化方面。本文主要对C++程序设计中的时间优化方法做出分析,在具体程序设计中,还可以利用改进数据结构和算法措施,来对时间性能加以优化。

猜你喜欢
指针程序设计代码
医学专业“Python程序设计”课程教学改革总结与思考
垂悬指针检测与防御方法*
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
为什么表的指针都按照顺时针方向转动
神秘的代码
高职高专院校C语言程序设计教学改革探索
一周机构净增(减)仓股前20名
一行代码玩完19亿元卫星
近期连续上涨7天以上的股