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++的程序都可以按這個要求來寫代碼。