System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 久久人妻少妇嫩草AV无码蜜桃 ,中文无码字慕在线观看,亚洲va成无码人在线观看
  • 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    內存釋放方法、裝置、計算機設備和存儲介質制造方法及圖紙

    技術編號:44492835 閱讀:3 留言:0更新日期:2025-03-04 17:58
    本申請涉及一種內存釋放方法、裝置、計算機設備和存儲介質。所述方法包括:在內存空閑率大于第一預設閾值且空閑內存總和大于第二預設閾值的情況下,遍歷內存段鏈表中的各內存段,將存在至少一個空閑內存塊的內存段作為目標內存段;按照預設的空閑內存塊釋放規則,對各目標內存段執行空閑內存塊釋放操作;根據目標內存段的內存段拆分結果,將目標內存段對應的各子內存段通過鏈表進行鏈接,得到目標內存段對應的子內存段鏈接信息;將內存段鏈表中各目標內存段對應的內存段鏈接信息替換為各目標內存段對應的子內存段鏈接信息,以將各目標內存段的空閑內存塊釋放給操作系統。采用本方法能夠高效回收內存,減少系統內存空閑率。

    【技術實現步驟摘要】

    本申請涉及計算機,特別是涉及一種內存釋放方法、裝置、計算機設備、存儲介質和計算機程序產品。


    技術介紹

    1、在使用luajit腳本語言時,由于luajit的內存分配器特性,只有當內存段上所有內存都為空閑,即只有一個空閑內存塊時,才會將這個內存段釋放給操作系統。在業務使用過程中,當luajit申請所需的最大內存后,一直維持所需的最大內存,不釋放內存。例如,正常情況下,只需要100m的內存,某個時刻需額外使用900m,共需1000m的內存,對應2個500m的內存段上的內存塊。當使用結束后,釋放900m內存,剩余100m內存。但此時100m的使用內存對應在2個內存段上各有50m的使用內存塊。此時2個500m的內存段都不會將內存歸還給操作系統,導致占用的內存為1000m,而實際只使用100m,內存使用率僅僅為10%,有較高的內存浪費。

    2、因此,傳統方法中的操作系統無法高效回收內存,導致系統空閑內存無法高效利用的問題。


    技術實現思路

    1、基于此,有必要針對上述技術問題,提供一種能夠高效回收內存的內存釋放方法、裝置、計算機設備、計算機可讀存儲介質和計算機程序產品。

    2、一種內存釋放方法,包括:

    3、在內存空閑率大于第一預設閾值且空閑內存總和大于第二預設閾值的情況下,遍歷內存段鏈表中的各內存段,將存在至少一個空閑內存塊的內存段作為目標內存段;

    4、按照預設的空閑內存塊釋放規則,對各目標內存段執行空閑內存塊釋放操作,并獲取執行空閑內存塊釋放操作后各目標內存段的內存段拆分結果;

    5、對于任一目標內存段,根據目標內存段的內存段拆分結果,將目標內存段對應的各子內存段通過鏈表進行鏈接,得到目標內存段對應的子內存段鏈接信息;

    6、將內存段鏈表中各目標內存段對應的內存段鏈接信息替換為各目標內存段對應的子內存段鏈接信息,以將各目標內存段的空閑內存釋放給操作系統。

    7、在其中一個實施例中,方法還包括:

    8、遍歷內存段鏈表,獲取各內存段的內存大小,以及,獲取各內存段的空閑內存大小;內存段上的空閑內存大小為將內存段上各空閑內存塊的內存大小進行相加得到的;

    9、根據各內存段的內存大小,確定內存總和,以及,根據各內存段的空閑內存大小,確定空閑內存總和;

    10、根據內存總和以及空閑內存總和,確定內存空閑率。

    11、在其中一個實施例中,按照預設的空閑內存塊釋放規則,對各目標內存段執行空閑內存塊釋放操作,包括:

    12、在目標內存段上的第一個內存塊為空閑內存塊的情況下,確定目標內存段的首地址和第一個內存塊的尾地址;

    13、根據第一個內存塊的尾地址和目標內存段的首地址,確定待釋放內存塊的尾地址;

    14、在待釋放內存塊的尾地址減去目標內存段的首地址得到的內存長度大于預設的內存頁長度的情況下,調用內存釋放函數釋放待釋放內存塊。

    15、在其中一個實施例中,根據第一個內存塊的尾地址和目標內存段的首地址,確定待釋放內存塊的尾地址,包括:

    16、將第一個內存塊的尾地址減去目標內存段的首地址后按照預設的內存頁長度進行內存對齊,得到待釋放內存塊的初始尾地址;

    17、在第一個內存塊的尾地址減去待釋放內存塊的初始尾地址得到的長度大于0且小于最小塊的長度的情況下,將初始尾地址減去預設的內存頁長度得到的結果作為待釋放內存塊的尾地址。

    18、在其中一個實施例中,按照預設的空閑內存塊釋放規則,對各目標內存段執行空閑內存塊釋放操作,包括:

    19、在目標內存段上的第一個內存塊不為空閑內存塊的情況下,確定目標內存段的第一個空閑內存塊;

    20、確定目標內存段的首地址、目標內存段的尾地址、第一個空閑內存塊的首地址、第一個空閑內存塊的尾地址;

    21、根據第一個空閑內存塊的首地址和目標內存段的首地址,確定待釋放內存塊的首地址,以及,根據第一個空閑內存塊的尾地址和目標內存段的首地址,確定待釋放內存塊的尾地址;

    22、在待釋放內存塊的尾地址減去待釋放內存塊的首地址得到的長度大于預設的內存頁長度的情況下,調用內存釋放函數釋放待釋放內存塊。

    23、在其中一個實施例中,根據第一個空閑內存塊的首地址和目標內存段的首地址,確定待釋放內存塊的首地址,包括:

    24、將第一個空閑內存塊的首地址減去目標內存段的首地址,并按照預設的內存頁長度進行內存對齊后加上目標內存段的首地址,得到待釋放內存塊的初始首地址;

    25、將待釋放內存塊的初始首地址減去預設的隱藏段長度和第一個空閑內存塊的首地址,得到第一長度;

    26、在第一長度大于0且小于最小塊的長度的情況下,將初始首地址加上預設的內存頁長度得到的結果作為待釋放內存塊的首地址。

    27、在其中一個實施例中,根據第一個空閑內存塊的尾地址和目標內存段的首地址,確定待釋放內存塊的尾地址,包括:

    28、將第一個空閑內存塊的尾地址減去目標內存段的首地址,并按照預設的內存頁長度進行內存對齊后加上目標內存段的首地址,得到待釋放內存塊的初始尾地址;

    29、將第一個空閑內存塊的尾地址減去待釋放內存塊的初始尾地址,得到第二長度;

    30、在第二長度大于0且小于最小塊的長度的情況下,將待釋放內存塊的初始尾地址減去預設的內存頁長度得到的結果作為待釋放內存塊的尾地址。

    31、一種內存釋放裝置,包括:

    32、遍歷模塊,用于在內存空閑率大于第一預設閾值且空閑內存總和大于第二預設閾值的情況下,遍歷內存段鏈表中的各內存段,將存在至少一個空閑內存塊的內存段作為目標內存段;

    33、釋放模塊,用于按照預設的空閑內存塊釋放規則,對各目標內存段執行空閑內存塊釋放操作,并獲取執行空閑內存塊釋放操作后各目標內存段的內存段拆分結果;

    34、鏈接模塊,用于對于任一目標內存段,根據目標內存段的內存段拆分結果,將目標內存段對應的各子內存段通過鏈表進行鏈接,得到目標內存段對應的子內存段鏈接信息;

    35、替換模塊,用于將內存段鏈表中各目標內存段對應的內存段鏈接信息替換為各目標內存段對應的子內存段鏈接信息,以將各目標內存段的空閑內存釋放給操作系統。

    36、一種計算機設備,包括存儲器和處理器,存儲器存儲有計算機程序,處理器執行計算機程序時實現上述的方法的步驟。

    37、一種計算機可讀存儲介質,其上存儲有計算機程序,計算機程序被處理器執行時實現上述的方法的步驟。

    38、上述內存釋放方法、裝置、計算機設備、存儲介質和計算機程序產品,通過在內存空閑率大于第一預設閾值且空閑內存總和大于第二預設閾值的情況下,遍歷內存段鏈表中的各內存段,將存在至少一個空閑內存塊的內存段作為目標內存段;按照預設的空閑內存塊釋放規則,對各目標內存段執行空閑內存塊釋放操作,并獲取執行空閑內存塊釋放操作后各目標內存段的內存段拆分結果;對本文檔來自技高網...

    【技術保護點】

    1.一種內存釋放方法,其特征在于,所述方法包括:

    2.根據權利要求1所述的方法,其特征在于,所述方法還包括:

    3.根據權利要求1所述的方法,其特征在于,所述按照預設的空閑內存塊釋放規則,對各所述目標內存段執行空閑內存塊釋放操作,包括:

    4.根據權利要求3所述的方法,其特征在于,所述根據所述第一個內存塊的尾地址和所述目標內存段的首地址,確定待釋放內存塊的尾地址,包括:

    5.根據權利要求1所述的方法,其特征在于,所述按照預設的空閑內存塊釋放規則,對各所述目標內存段執行空閑內存塊釋放操作,包括:

    6.根據權利要求5所述的方法,其特征在于,所述根據所述第一個空閑內存塊的首地址和所述目標內存段的首地址,確定待釋放內存塊的首地址,包括:

    7.根據權利要求5所述的方法,其特征在于,所述根據所述第一個空閑內存塊的尾地址和所述目標內存段的首地址,確定所述待釋放內存塊的尾地址,包括:

    8.一種內存釋放裝置,其特征在于,所述裝置包括:

    9.一種計算機設備,包括存儲器和處理器,所述存儲器存儲有計算機程序,其特征在于,所述處理器執行所述計算機程序時實現權利要求1至7中任一項所述的方法的步驟。

    10.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執行時實現權利要求1至7中任一項所述的方法的步驟。

    ...

    【技術特征摘要】

    1.一種內存釋放方法,其特征在于,所述方法包括:

    2.根據權利要求1所述的方法,其特征在于,所述方法還包括:

    3.根據權利要求1所述的方法,其特征在于,所述按照預設的空閑內存塊釋放規則,對各所述目標內存段執行空閑內存塊釋放操作,包括:

    4.根據權利要求3所述的方法,其特征在于,所述根據所述第一個內存塊的尾地址和所述目標內存段的首地址,確定待釋放內存塊的尾地址,包括:

    5.根據權利要求1所述的方法,其特征在于,所述按照預設的空閑內存塊釋放規則,對各所述目標內存段執行空閑內存塊釋放操作,包括:

    6.根據權利要求5所述的方法,其特征在于,所述根據所述第一...

    【專利技術屬性】
    技術研發人員:曾勁基林金棚林靜娟謝東雷潘艷婧
    申請(專利權)人:天翼云科技有限公司
    類型:發明
    國別省市:

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 无码射肉在线播放视频| av无码免费一区二区三区| 久久亚洲精品无码gv| 激情无码亚洲一区二区三区| 在线A级毛片无码免费真人| 人妻少妇无码精品视频区 | 亚洲youwu永久无码精品| 国产强伦姧在线观看无码| 亚洲中文字幕无码中文| 亚洲综合av永久无码精品一区二区 | 人妻少妇无码精品视频区| 亚洲av中文无码字幕色不卡 | 69久久精品无码一区二区 | 无码专区久久综合久中文字幕| 久久天堂av综合色无码专区| 欧洲成人午夜精品无码区久久| av无码aV天天aV天天爽| 性色av无码免费一区二区三区| 久久无码专区国产精品发布| 亚洲午夜国产精品无码| 国产成人亚洲综合无码| 亚洲高清无码在线观看| av色欲无码人妻中文字幕| 精品亚洲成在人线AV无码| 日韩精品人妻系列无码专区免费| 中文字幕人妻三级中文无码视频| 热の无码热の有码热の综合| 18禁成年无码免费网站无遮挡 | 免费无码黄网站在线观看| 亚洲精品无码久久久久秋霞| av潮喷大喷水系列无码| 中文字幕久久久人妻无码| 精品无码免费专区毛片| 综合无码一区二区三区四区五区| 亚洲AV无码专区在线亚| 亚洲中文字幕无码中文| 黑人巨大无码中文字幕无码| 国产精品无码一本二本三本色| 无码A级毛片日韩精品| 精品无人区无码乱码毛片国产| 国产亚洲精品无码拍拍拍色欲|