• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            <2009年9月>
            303112345
            6789101112
            13141516171819
            20212223242526
            27282930123
            45678910

            統(tǒng)計(jì)

            • 隨筆 - 21
            • 文章 - 0
            • 評(píng)論 - 2
            • 引用 - 0

            常用鏈接

            留言簿

            隨筆分類

            隨筆檔案

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            HeapAlloc GlobalAlloc new等內(nèi)存分配的區(qū)別

            GlobalAlloc是標(biāo)準(zhǔn)內(nèi)存管理函數(shù),標(biāo)準(zhǔn)內(nèi)存管理函數(shù)都是操作進(jìn)程的默認(rèn)堆,所以這個(gè)函數(shù)是從進(jìn)程的默認(rèn)堆中分配內(nèi)存空間,分配的空間可以是可移動(dòng)的也可以是不可移動(dòng)的。可移動(dòng)的內(nèi)存是指Windows在需要的時(shí)候可以將這個(gè)內(nèi)存移動(dòng)到另外一個(gè)地址.

             

            關(guān)于GlobalAlloc and LocalAlloc,from MSDN  
               
              The global and local functions supported for porting from 16-bit code, or maintaining source code compatibility with 16-bit Windows. The global and local functions are slower   than other memory management functions and do not provide as many features. Therefore,  new   applications should use the heap functions.However, the global functions are still used with DDE and the clipboard functions.  
               
              Windows memory management does not provide a separate local heap and global heap, as 16-bit Windows does. As a result, there is no difference between the memory objects allocated by the GlobalAlloc and LocalAlloc functions. In addition, the change from a 16-bit segmented memory model to a 32-bit virtual memory model has made some of the related global and local functions and their options unnecessary or meaningless. For example, there are no longer near and far pointers, because both local and global allocations return 32-bit virtual addresses.
             
              Memory objects allocated by GlobalAlloc and LocalAlloc are in private, committed pages with read/write access that cannot be accessed by other processes. Memory allocated by using GlobalAlloc with GMEM_DDESHARE is not actually shared globally as it is in 16-bit Windows. This value has no effect and is available only for compatibility. Applications requiring shared memory for other purposes must use file-mapping objects. Multiple processes can map a view of the same file-mapping object to provide named shared memory. For more information, see File Mapping.

            HeapAllock是堆管理函數(shù),堆管理函數(shù)可以操作非默認(rèn)堆(當(dāng)然也可以操作默認(rèn)堆),創(chuàng)建一個(gè)堆是用HeapCreate,這個(gè)函數(shù)返回一個(gè)堆句 柄,然后可以用在HeapAllock函數(shù)中,即從返回的這個(gè)堆中申請內(nèi)存空間,HeapAllock申請的內(nèi)存只能是不可以移動(dòng)的.

            而new則是c++的標(biāo)準(zhǔn)函數(shù),在Windows的VC++編譯器中,new在申請內(nèi)存時(shí)最終調(diào)用的是GlabalAlloc,不過new還可以調(diào)用類的構(gòu)造函數(shù).

            Windows的內(nèi)存管理除了標(biāo)準(zhǔn)內(nèi)存管理函數(shù)和堆管理函數(shù)之外,還有更加底層的虛擬內(nèi)存管理函數(shù),VirtualAlloc就是一個(gè)虛擬內(nèi)存管理函數(shù).

             

            Personal Comprehension

            GlobalAlloc分配的內(nèi)存,還可以調(diào)用GlobalLock鎖定該內(nèi)存塊(該函數(shù)可以被多次調(diào)用),在我們沒有調(diào)用GlobalUnlock之 前,該內(nèi)存塊會(huì)一直保持有效(即使調(diào)用了GlobalFree函數(shù),但如果該內(nèi)存的鎖計(jì)數(shù)不為0,該內(nèi)存塊也不會(huì)被釋放掉,依然保持有效)!而如果只調(diào)用 一次delete,則使用new所分配的內(nèi)存就會(huì)被釋放掉.

            posted on 2009-09-06 21:50 ChinaPanda 閱讀(661) 評(píng)論(0)  編輯 收藏 引用 所屬分類: windows


            只有注冊用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            国产午夜精品理论片久久| 亚洲一区二区三区日本久久九| 91精品国产9l久久久久| 国产精品久久久久影院嫩草| 国产精品久久久久久久久鸭| 久久精品国产精品国产精品污| 品成人欧美大片久久国产欧美... 品成人欧美大片久久国产欧美 | 久久久久亚洲AV无码专区首JN | 日本加勒比久久精品| 久久九九亚洲精品| 久久久久亚洲av毛片大| 亚洲AV日韩AV天堂久久| www.久久99| 国产偷久久久精品专区| 日韩一区二区久久久久久| 亚洲综合久久久| 久久狠狠色狠狠色综合| 亚洲精品无码久久久影院相关影片| 91精品婷婷国产综合久久| 久久精品国产色蜜蜜麻豆| 国产一区二区三精品久久久无广告| 午夜精品久久久久久久| 日韩电影久久久被窝网| 国产成人AV综合久久| 久久久久久九九99精品| 久久精品国产乱子伦| 亚洲午夜福利精品久久| 久久精品18| 久久久久免费视频| 国产精品成人99久久久久| 99久久精品影院老鸭窝| 久久精品亚洲中文字幕无码麻豆| 伊人久久成人成综合网222| 久久精品国产99久久久香蕉| 一本久久久久久久| 久久成人18免费网站| 久久久免费观成人影院| 青青草国产97免久久费观看| 欧美色综合久久久久久| 三级片免费观看久久| 久久精品国产亚洲AV久|