這篇文章主要為大家展示了“Utility中內(nèi)存分配策略的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Utility中內(nèi)存分配策略的示例分析”這篇文章吧。
站在用戶的角度思考問題,與客戶深入溝通,找到孝昌網(wǎng)站設(shè)計與孝昌網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、主機域名、虛擬主機、企業(yè)郵箱。業(yè)務(wù)覆蓋孝昌地區(qū)。
typedef unsigned int size_t;void *malloc(size_t nBytes);void *calloc(size_t elemNum, size_t elemSize);void *realloc(void *pBlock, size_t newSize);void free(void *ptr);
typedef int _Vx_STATUS;typedef _Vx_STATUS STATUS;STATUS cfree(char *pBlock);
而存放在堆里的那些內(nèi)存塊具體是如何管理的呢?
Vx5用的策略是First Fit,可以翻譯為最先分配算法。在這種策略下,所有的空閑內(nèi)存塊按照地址從低到高排列。當需要申請內(nèi)存時,從低地址開始查找,第一塊滿足需求的內(nèi)存塊被分配。所以當系統(tǒng)申請內(nèi)存的次數(shù)比較多了之后,低地址就會留下大量小塊內(nèi)存,導(dǎo)致后期的查找時間略長。大致代碼如下
void *memXxxAlloc ( PART_ID partId, /* memory partition to allocate from */ unsigned nBytes, /* number of bytes to allocate */ unsigned alignment/* boundary to align to */ ){ ... DL_NODE *pNode = DLL_FIRST(&partId->freeList); ... while(pNode != NULL) { /* fits if: * - blocksize > requested size + extra room for alignment or, * - block is already aligned and exactly the right size */ if ((NODE_TO_HDR (pNode)->nWords > nWordsExtra) || ((NODE_TO_HDR (pNode)->nWords == nWords) && (ALIGNED (HDR_TO_BLOCK(NODE_TO_HDR(pNode)), alignment)))) break; pNode = DLL_NEXT (pNode); } ... }
AVLU_NODE *avlXxxGet ( AVLU_TREE root, /* root node pointer */ UINT key /* search key */ ) { AVLU_NODE *pNode; AVLU_NODE *pSuccessor; pNode = root; pSuccessor = NULL; while (pNode != NULL) { if (key >= pNode->key) { pNode = pNode->right; } else { pSuccessor = pNode; pNode = pNode->left; } } return (pSuccessor); }
計算機專業(yè)的童鞋應(yīng)該知道還有一種策略叫Worst Fit,可以翻譯為最差分配算法。在這種策略下,所有的空閑內(nèi)存塊按照尺寸從大到小排列。當需要申請內(nèi)存時,要么分配第一塊,要是失敗。所以這種算法的分配速度最快,而且很少有小碎片,但是容易造成大塊內(nèi)存申請失敗,所以適合待分配內(nèi)存塊比較統(tǒng)一的情況。
以上是“Utility中內(nèi)存分配策略的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
文章標題:Utility中內(nèi)存分配策略的示例分析
鏈接URL:http://bm7419.com/article32/pciosc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、、商城網(wǎng)站、動態(tài)網(wǎng)站、網(wǎng)站營銷、網(wǎng)站維護
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)