1.一種內存預留方法,其特征在于,所述方法包括:
在應用程序啟動之前,獲取用于預留給應用程序的多個內存塊的物理地址,將所述多個內存塊按照其對應的物理地址的大小關系進行排序;
將排序后的所述多個內存塊按照其對應的物理地址從大到小的順序逐一釋放;
將釋放后的所述多個內存塊逐一重新申請,并記錄重新申請后的所述多個內存塊的物理地址與虛擬地址的對應關系。
2.根據(jù)權利要求1所述的方法,其特征在于,所述獲取用于預留給應用程序的多個內存塊的物理地址的方式,包括:
根據(jù)預設配置信息獲取需要預留給應用程序的內存塊的預設數(shù)量以及每個內存塊的預設大小;
根據(jù)所述內存塊的預設數(shù)量及內存塊的預設大小進行內存塊申請,獲取申請到的多個內存塊的物理地址。
3.根據(jù)權利要求1或2所述的方法,其特征在于,所述內存塊為按照大頁hugepage機制申請的物理內存塊。
4.根據(jù)權利要求1或2所述的方法,其特征在于,所述方法還包括:
遍歷記錄有所述多個內存塊的物理地址與對應虛擬地址的內存塊信息表,將所述多個內存塊中所述物理地址與對應虛擬地址均連續(xù)的內存塊合并為新的內存塊,在所述內存塊信息表中記錄合并后的新的內存塊的物理地址及虛擬地址。
5.根據(jù)權利要求4所述的方法,其特征在于,所述將所述物理地址與對應虛擬地址均連續(xù)的內存塊合并為新的內存塊,記錄合并后的新的內存塊的物理地址及虛擬地址的步驟之后,所述方法還包括:
將所述內存塊信息表中的內存塊的信息發(fā)送給系統(tǒng)的內存管理單元,進行應用程序對所述內存塊的調用。
6.一種內存預留裝置,其特征在于,所述裝置包括:
內存塊排序模塊,用于在應用程序啟動之前,獲取用于預留給應用程序的多個內存塊的物理地址,將所述多個內存塊按照其對應的物理地址的大小關系進行排序;
內存塊釋放模塊,用于將排序后的所述多個內存塊按照其對應的物理地址從大到小的順序逐一釋放;
內存塊重申請模塊,用于將釋放后的所述多個內存塊逐一重新申請,并記錄重新申請后的所述多個內存塊的物理地址與虛擬地址的對應關系。
7.根據(jù)權利要求6所述的裝置,其特征在于,所述內存塊排序模塊獲取用于預留給應用程序的多個內存塊的物理地址的方式,包括:
根據(jù)預設配置信息獲取需要預留給應用程序的內存塊的數(shù)量以及每個內存塊的大?。?/p>
根據(jù)所述內存塊的數(shù)量及內存塊的大小進行內存塊申請,獲取申請到的多個內存塊的物理地址。
8.根據(jù)權利要求6或7所述的裝置,其特征在于,所述內存塊為按照大頁hugepage機制申請的物理內存塊。
9.根據(jù)權利要求6或7所述的裝置,其特征在于,所述裝置還包括:
內存塊合并模塊,用于遍歷記錄有所述多個內存塊的物理地址與對應虛擬地址的內存塊信息表,將所述多個內存塊中所述物理地址與對應虛擬地址均連續(xù)的內存塊合并為新的內存塊,在所述內存塊信息表中記錄合并后的新的內存塊的物理地址及虛擬地址。
10.根據(jù)權利要求9所述的裝置,其特征在于,所述裝置還包括:
內存塊信息發(fā)送模塊,用于將所述內存塊信息表中的內存塊的信息發(fā)送給系統(tǒng)的內存管理單元,進行應用程序對所述內存塊的調用。