OpenCASCADE编码规范-内存对齐
OpenCASCADE编码规范-内存对齐
在OpenCASCADE 的编码规范Coding Rules中提到了一条与性能相关的规范,那就是类的内存对齐要求,特别是intel的机器。
对应的编码的要求就是每个类的成员变量按字节大小降序排列,如下图所示:
做出这样的要求是有原因的,一个好处是会节约内存资源,使内存更紧凑;另一个是会提高CPU的内存访问速度。从而提高性能。
大家可以通过实践来验证这个内存对齐的要求,可以参考:C++ struct结构体内存对齐:https://www.cnblogs.com/hyacinthLJP/p/16041690.html
Struct members order does make a difference:http://katecpp.github.io/struct-members-order/
通过自己实践去理解这条编码规则,即同一个类,只是成员变量定义顺序不同,会导致这个类的内存不同。并在自己实际编码过程中去执行这个要求:最好将类的成员变量根据字节大小按顺序定义。这样做在定义类的时候会麻烦一点,但是会有性能提升的回报。
这条编码规范不是针对OpenCASCADE的,是C++的程序都可以按这个要求来写代码。