一起揭秘代码效率真相
|
今流行面向对象编程,个人也认为这是一种使代码更加清晰和模块化的方法。面向对象编程风格优缺点明显,优点是:
缺点是:
类和成员函数的开销其实并没有特别大,如果面向对象风格可以使程序结构更加清晰,我们只要避免在程序最关键的部分使用太多的函数调用,就不要担心它的开销。 类的数据成员 当创建类或结构体的实例时,其数据成员按其声明的顺序连续存储。大多数编译器都会对结构体进行内存对齐,这种对齐可能会在成员大小混合的结构体或类中,造成未使用字节的空洞。重新排序使结构变小了8个字节,整个数组变小了800个字节。 通过重新排序数据成员,结构对象和类对象通常可以变小。如果不确定一个结构或它的每个成员有多大,可以使用sizeof,它的返回值包括对象末尾的任何未使用的字节。 如果成员相对于结构体或类开头的偏移量小于128,则访问数据成员的代码会更紧凑,因为该偏移量可以表示为8位有符号的数字。如果相对于结构体或类的开头的偏移量是128字节或更大,那么偏移量必须表示为一个32位数字(指令集在8位到32位之间没有偏移量)。例如:偏移量是400。任何通过指针或成员函数(如ReadB)访问b的代码,都需要将偏移量编码为32位数字。如果交换了a和b,则两者都可以通过编码为8位有符号数字的偏移量来访问,或者根本没有偏移量。这使代码更紧凑,以便更有效地使用Cache。因此,建议在结构或类声明中,大数组和其他大对象排在最后,最常用的数据成员排在前面。如果不能在前128个字节内包含所有数据成员,则将最常用的成员放在前128个字节中。 类的成员函数
每次声明或创建类的新对象时,都会生成数据成员的新实例。但无论多少类的实例,成员函数只有一份。调用成员函数和使用结构指针或引用来调用简单函数一样快。 (编辑:玉林站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |



