OpenCASCADE:Foundation Classes内存管理
OpenCASCADE:Foundation Classes內(nèi)存管理
- 內(nèi)存管理器的使用
- 如何配置內(nèi)存管理器
- 優(yōu)化技術(shù)
- 優(yōu)點(diǎn)和缺點(diǎn)
在工作會(huì)話中,幾何建模應(yīng)用程序創(chuàng)建和刪除分配在動(dòng)態(tài)內(nèi)存(堆)中的大量 C++ 對(duì)象。在這種情況下,用于分配和取消分配內(nèi)存的標(biāo)準(zhǔn)函數(shù)的性能可能不夠。為此,Open CASCADE 技術(shù)采用了在標(biāo)準(zhǔn)包中實(shí)現(xiàn)的專用內(nèi)存管理器。
內(nèi)存管理器基于以下原則:
小內(nèi)存陣列被分組到集群中,然后回收(集群永遠(yuǎn)不會(huì)釋放到系統(tǒng)中),
大數(shù)組是通過(guò)系統(tǒng)的標(biāo)準(zhǔn)函數(shù)分配和取消分配的(數(shù)組在不再使用時(shí)釋放給系統(tǒng))。
作為一般規(guī)則,建議通過(guò)重要塊分配內(nèi)存。通過(guò)這種方式,用戶可以處理連續(xù)數(shù)據(jù)塊,并有助于內(nèi)存頁(yè)面管理器的處理。
內(nèi)存管理器的使用
要使用 Open CASCADE Technology 內(nèi)存管理器在 C 代碼中分配內(nèi)存,只需使用方法Standard::Allocate()代替malloc()和方法Standard::Free()代替free()。此外,提供了方法Standard::Reallocate()來(lái)替換 C 函數(shù)realloc()。
在 C++ 中,可以定義類的運(yùn)算符new()和delete()以便使用Standard::Allocate()分配內(nèi)存并使用Standard::Free()釋放它。在這種情況下,該類的所有對(duì)象和所有繼承的類都將使用 OCCT 內(nèi)存管理器進(jìn)行分配
總結(jié)
以上是生活随笔為你收集整理的OpenCASCADE:Foundation Classes内存管理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: OpenCASCADE:Foundati
- 下一篇: 刚需房是什么房(刚需房是啥意思 lsqu