Posted on 2022-03-28 18:09
eryar 閱讀(827)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
2.OpenCASCADE
OpenCASCADE編碼規(guī)范-內(nèi)存對(duì)齊
eryar@163.com
在OpenCASCADE 的編碼規(guī)范Coding Rules中提到了一條與性能相關(guān)的規(guī)范,那就是類的內(nèi)存對(duì)齊要求,特別是intel的機(jī)器。

對(duì)應(yīng)的編碼的要求就是每個(gè)類的成員變量按字節(jié)大小降序排列,如下圖所示:

做出這樣的要求是有原因的,一個(gè)好處是會(huì)節(jié)約內(nèi)存資源,使內(nèi)存更緊湊;另一個(gè)是會(huì)提高CPU的內(nèi)存訪問速度。從而提高性能。
大家可以通過實(shí)踐來驗(yàn)證這個(gè)內(nèi)存對(duì)齊的要求,可以參考:C++ struct結(jié)構(gòu)體內(nèi)存對(duì)齊:https://www.cnblogs.com/hyacinthLJP/p/16041690.html
Struct members order does make a difference:http://katecpp.github.io/struct-members-order/
通過自己實(shí)踐去理解這條編碼規(guī)則,即同一個(gè)類,只是成員變量定義順序不同,會(huì)導(dǎo)致這個(gè)類的內(nèi)存不同。并在自己實(shí)際編碼過程中去執(zhí)行這個(gè)要求:最好將類的成員變量根據(jù)字節(jié)大小按順序定義。這樣做在定義類的時(shí)候會(huì)麻煩一點(diǎn),但是會(huì)有性能提升的回報(bào)。
這條編碼規(guī)范不是針對(duì)OpenCASCADE的,是C++的程序都可以按這個(gè)要求來寫代碼。