新聞中心
linux內(nèi)存管理采用了引用計(jì)數(shù)系統(tǒng)來(lái)實(shí)現(xiàn)內(nèi)存回收,它是把內(nèi)存分為兩部分:第一部分是物理內(nèi)存,它負(fù)責(zé)在多個(gè)程序之間共享內(nèi)存,另一部分是虛擬內(nèi)存,它用于在硬盤和內(nèi)存之間來(lái)回傳輸數(shù)據(jù)。引用計(jì)數(shù)系統(tǒng)可以追蹤內(nèi)存使用,當(dāng)系統(tǒng)發(fā)現(xiàn)沒(méi)有使用的內(nèi)存時(shí),就會(huì)將其釋放,并將其放回物理內(nèi)存以便重復(fù)使用。

成都創(chuàng)新互聯(lián)是一家專業(yè)提供漯河企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、HTML5、小程序制作等業(yè)務(wù)。10年已為漯河眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。
linux引用計(jì)數(shù)系統(tǒng)使用一個(gè)稱為引用計(jì)數(shù)的值來(lái)計(jì)算在一個(gè)特定的時(shí)間點(diǎn)有多少程序正在使用某個(gè)數(shù)據(jù)塊——如果沒(méi)有程序使用,則引用計(jì)數(shù)為零,此時(shí)內(nèi)存可以釋放。引用計(jì)數(shù)使用硬件實(shí)現(xiàn),引用計(jì)數(shù)器可以物理地跟蹤所有內(nèi)存操作,例如,當(dāng)一個(gè)程序請(qǐng)求讀取一個(gè)數(shù)據(jù)塊時(shí),引用計(jì)數(shù)器將自動(dòng)增加1,當(dāng)程序不再使用該數(shù)據(jù)塊時(shí),引用計(jì)數(shù)器仍會(huì)自動(dòng)減少1。
另外,Linux引用計(jì)數(shù)系統(tǒng)還支持多個(gè)內(nèi)核之間的緩存共享,從而減少內(nèi)存釋放的次數(shù)。Linux內(nèi)核可以在物理內(nèi)存中緩存所有分配的數(shù)據(jù)塊,當(dāng)緩存中的一個(gè)數(shù)據(jù)塊失去引用計(jì)數(shù)器的引用時(shí),就會(huì)釋放該數(shù)據(jù)塊,緩存已釋放的數(shù)據(jù)塊,可在多個(gè)內(nèi)核之間共享,從而提高性能。
下面是Linux內(nèi)核采用引用計(jì)數(shù)系統(tǒng)實(shí)現(xiàn)內(nèi)存回收的一個(gè)樣例代碼:
/*類定義*/
class Count {
int reference;
public:
Count() : reference(0){}
~Count(){}
void increase();
void decrease();
};
/*增加引用計(jì)數(shù)*/
void Count::increase() {
reference++;
}
/*減少引用計(jì)數(shù)*/
void Count::decrease() {
reference–;
if (reference == 0)
delete this;
}
總之,Linux采用引用計(jì)數(shù)系統(tǒng)實(shí)現(xiàn)了內(nèi)存回收,通過(guò)引用計(jì)數(shù)來(lái)追蹤內(nèi)存使用,當(dāng)發(fā)現(xiàn)沒(méi)有使用的內(nèi)存時(shí),就會(huì)釋放內(nèi)存,以節(jié)省系統(tǒng)資源,提高程序性能。
成都網(wǎng)站設(shè)計(jì)制作選創(chuàng)新互聯(lián),專業(yè)網(wǎng)站建設(shè)公司。
成都創(chuàng)新互聯(lián)10余年專注成都高端網(wǎng)站建設(shè)定制開(kāi)發(fā)服務(wù),為客戶提供專業(yè)的成都網(wǎng)站制作,成都網(wǎng)頁(yè)設(shè)計(jì),成都網(wǎng)站設(shè)計(jì)服務(wù);成都創(chuàng)新互聯(lián)服務(wù)內(nèi)容包含成都網(wǎng)站建設(shè),小程序開(kāi)發(fā),營(yíng)銷網(wǎng)站建設(shè),網(wǎng)站改版,服務(wù)器托管租用等互聯(lián)網(wǎng)服務(wù)。
網(wǎng)站名稱:Linux引用計(jì)數(shù)系統(tǒng):實(shí)現(xiàn)內(nèi)存回收(linux引用計(jì)數(shù))
分享網(wǎng)址:http://fisionsoft.com.cn/article/djesped.html


咨詢
建站咨詢
