Motrona GV470分配器
簡(jiǎn)要描述:雖然Motrona GV470分配器的定制有所限制,但在許多情況下,仍需要用到自定義的分配器,而這一般是為封裝對(duì)不同類型內(nèi)存空間(如共享內(nèi)存與已回收內(nèi)存)的訪問(wèn)方式,或在使用內(nèi)存池進(jìn)行內(nèi)存分配時(shí)提高性能而為.
訪問(wèn)次數(shù):1762
所屬分類:分配器
更新時(shí)間:2021-07-07
廠商性質(zhì):經(jīng)銷(xiāo)商
詳情介紹
品牌 | 其他品牌 | 應(yīng)用領(lǐng)域 | 醫(yī)療衛(wèi)生,環(huán)保,農(nóng)業(yè),能源 |
---|
分配器是由亞歷山大·斯特潘諾夫作為C++標(biāo)準(zhǔn)模板庫(kù)(Standard Template Library,簡(jiǎn)稱STL)的一部分發(fā)明,其初衷是創(chuàng)造一種能“使庫(kù)更加靈活,并能獨(dú)立于底層數(shù)據(jù)模型的方法”,并允許程序員在庫(kù)中利用自定義的指針和引用類型;但在將標(biāo)準(zhǔn)模板庫(kù)納入C++標(biāo)準(zhǔn)時(shí),C++標(biāo)準(zhǔn)委員會(huì)意識(shí)到對(duì)數(shù)據(jù)模型的*抽象化處理會(huì)帶來(lái)不可接受的性能損耗,為作折中,標(biāo)準(zhǔn)中對(duì)分配器的限制變得更加嚴(yán)格,而有鑒于此,與斯特潘諾夫原先的設(shè)想相比,現(xiàn)有標(biāo)準(zhǔn)所描述的分配器可定制程度已大大受限。
雖然Motrona GV470分配器的定制有所限制,但在許多情況下,仍需要用到自定義的分配器,而這一般是為封裝對(duì)不同類型內(nèi)存空間(如共享內(nèi)存與已回收內(nèi)存)的訪問(wèn)方式,或在使用內(nèi)存池進(jìn)行內(nèi)存分配時(shí)提高性能而為。除此以外,從內(nèi)存占用和運(yùn)行時(shí)間的角度看,在頻繁進(jìn)行少量?jī)?nèi)存分配的程序中,若引入為之專門(mén)定制的分配器,也會(huì)獲益良多。
定義Motrona GV470分配器的主要原因之一是提升性能。利用它可以提高程序的性能,又或提高內(nèi)存使用效率,亦或兩者兼而有之。默認(rèn)分配器使用new操作符分配存儲(chǔ)空間,而這常利用C語(yǔ)言堆分配函數(shù)(malloc())實(shí)現(xiàn)。由于堆分配函數(shù)常針對(duì)偶發(fā)的內(nèi)存大量分配作優(yōu)化,因此在為需要一次分配大量?jī)?nèi)存的容器(如向量、雙端隊(duì)列)分配內(nèi)存時(shí),默認(rèn)分配器一般效率良好。但是,對(duì)于關(guān)聯(lián)容器與雙向鏈表這類需要頻繁分配少量?jī)?nèi)存的容器來(lái)說(shuō),若采用默認(rèn)分配器分配內(nèi)存,則通常效率很低。除此之外,基于malloc()的默認(rèn)分配器還存在許多問(wèn)題,諸如較差的引用局部性,以及可能造成內(nèi)存碎片化。
留言詢價(jià)