[發明專利]用于多線程環境下動態調整全局堆分配的方法和系統有效
| 申請號: | 201210086688.0 | 申請日: | 2012-03-28 |
| 公開(公告)號: | CN103365720B | 公開(公告)日: | 2017-12-05 |
| 發明(設計)人: | 韓瑞波;羅志達;戴曉君;劉偉 | 申請(專利權)人: | 國際商業機器公司 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50 |
| 代理公司: | 北京市金杜律師事務所11256 | 代理人: | 酆迅,李崢宇 |
| 地址: | 美國紐*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 用于 多線程 環境 動態 調整 全局 分配 方法 系統 | ||
技術領域
本發明涉及多線程環境下的全局堆分配技術。更具體地,本發明尤其涉及通過監測全局堆分配方法的沖突參數來動態調整全局堆分配的方法和系統。
背景技術
目前,隨著計算機多核技術的發展,多線程(multi-thread)程序得到了越來越廣泛的應用。多線程環境下存在兩大問題,其一是資源共享,也就是多個線程共享同一實體物理內存。其二是資源同步,也就是多線程環境要求同一實體物理內存在同一時間僅由一個線程訪問。由此可見,資源共享與資源同步是彼此之間存在矛盾的要求。在保證資源共享的前提下,當多個線程同時請求對全局堆(Heap)的分配時,就會產生“鎖競爭”,也就是說后請求的線程必須等待先請求的線程共享內存分配完畢后才能“解鎖”,從而進行內存分配。如果同時請求內存分配的線程數量龐大,則會導致程序運行速度下降,造成“死機”甚至“系統崩潰”等現象。圖2A示出了這種情形的一個示例。如圖2A所示,線程(Thread)1-N需要共享全局內存堆(Global Memory Heap),而根據資源同步的要求,同一時間只能對一個線程進行全局內存堆的分配,其它線程必須處于鎖等待狀態以實現內存資源的同步。
現有技術中存在一種解決上述問題的技術方案,如圖2B所示。在圖2B中,將圖2A中的共享全局內存堆分為多個子堆Heap1-HeapN,并為每個子堆分配若干線程。該技術方案確實可以從某種程度上緩解鎖競爭的情況,但是其每個子堆上仍然被分配了多個線程,仍然存在鎖競爭的問題。更重要的是,由于在劃分子堆并分配線程的時候,并不可能知道應該將哪些線程分配至哪些子堆才能取得運行時最好的效果,因此往往會出現子堆Heap1處于空閑狀態,而子堆Heap2確已經處于鎖競爭狀態,從而造成內存資源浪費并導致大量內存碎片。
發明內容
考慮到上述存在的問題,本發明的目的之一在于提供一種多線程環境下動態調整全局堆分配的方法和系統。
根據本發明的一個方面,提供了一種用于在多線程環境下動態調整全局堆分配的方法,包括:識別應用程序中的全局堆分配方法;判斷所述全局堆分配方法是否為多線程沖突熱點;以及響應于判斷結果為是,利用本地棧分配所述全局堆分配方法所請求的內存空間。
根據本發明的一個實施例,其中判斷所述全局堆分配方法是否為多線程沖突熱點包括:
通過實時監測所述全局堆分配方法的多線程沖突參數來判斷所述全局堆分配方法是否為多線程沖突熱點,并且所述多線程沖突參數包括下列參數中的一個或多個:所述全局堆分配方法在單位時間內的調用次數;所述全局堆分配方法所請求分配的全局內存空間;以及所述全局堆分配方法在單位時間內的所沖突次數。
根據本發明的另一方面,提供了一種用于在多線程環境下動態調整全局堆分配的系統,包括:識別裝置,被配置為識別應用程序中的全局堆分配方法;判斷裝置,被配置為判斷所述全局堆分配方法是否為多線程沖突熱點;以及調整裝置,被配置為響應于判斷結果為是,利用本地棧分配所述全局堆分配方法所請求的內存空間。
根據本發明所提供的方法或系統,通過判斷程序中的全局堆分配方法是否為多線程沖突熱點,來決定是否利用本地棧分配原始全局堆分配方法所請求的內存空間,從而有的放矢地根據實時運行狀態動態調整程序中固有的全局堆分配方法,減少了全局堆上產生的鎖競爭,有效提高了資源分配的效率以及資源的利用率。
附圖說明
通過對結合附圖所示出的實施方式進行詳細說明,本發明的上述以及其他特征將更加明顯,本發明附圖中相同的標號表示相同或相似的部件。在附圖中,
圖1示出了適于用來實現本發明實施方式的示例性計算系統100的框圖;
圖2A示出了多個線程共享全局內存堆時導致的鎖競爭情形;
圖2B示出了現有技術中為解決圖2A的問題所采取的將共享全局內存堆劃分為多個共享內存子堆的示意圖;
圖3示出了根據本發明一個實施例的用于在多線程環境下動態調整全局堆分配的方法的流程圖;
圖4示出了根據本發明又一實施例的用于在多線程環境下動態調整全局堆分配的方法的流程圖;
圖5示出了根據本發明又一實施例的用于在多線程環境下動態調整全局堆分配的系統的框圖。
具體實施方式
在下文中,將參考附圖通過實施方式對本發明提供的的方法和系統進行詳細地描述。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于國際商業機器公司,未經國際商業機器公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210086688.0/2.html,轉載請聲明來源鉆瓜專利網。





