eryar

PipeCAD - Plant Piping Design Software.
RvmTranslator - Translate AVEVA RVM to OBJ, glTF, etc.
posts - 603, comments - 590, trackbacks - 0, articles - 0

OpenCASCADE编码规范-内存对齐

Posted on 2022-03-28 18:09 eryar 阅读(799) 评论(0)  编辑 收藏 引用 所属分类: 2.OpenCASCADE

OpenCASCADE编码规范-内存对齐

eryar@163.com

 

在OpenCASCADE 的编码规范Coding Rules中提到了一条与性能相关的规范,那就是类的内存对齐要求,特别是intel的机器。

对应的编码的要求就是每个类的成员变量按字节大小降序排列,如下图所示:

做出这样的要求是有原因的,一个好处是会节约内存资源,使内存更紧凑;另一个是会提高CPU的内存访问速度。从而提高性能。

大家可以通过实践来验证这个内存对齐的要求,可以参考:C++ struct结构体内存对齐https://www.cnblogs.com/hyacinthLJP/p/16041690.html

Struct members order does make a differencehttp://katecpp.github.io/struct-members-order/

通过自己实践去理解这条编码规则,即同一个类,只是成员变量定义顺序不同,会导致这个类的内存不同。并在自己实际编码过程中去执行这个要求:最好将类的成员变量根据字节大小按顺序定义。这样做在定义类的时候会麻烦一点,但是会有性能提升的回报。

这条编码规范不是针对OpenCASCADE的,是C++的程序都可以按这个要求来写代码。


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理