方框中指定的功能。
[0106]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0107]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【主权项】
1.一种内存管理方法,其特征在于,包括: 将内存预先划分为多个内存分区,将所述内存分区分别分配为多个不同量级的内存块; 接收包含内存需求的网络数据包,并根据所述网络数据包中包含的内存需求的大小为所述网络数据包分配所述内存块的内存地址; 检测所述内存分区中不同量级的所述内存块的使用率,并根据所述使用率重新调整所述内存分区中的内存块的量级。
2.如权利要求1所述的方法,其特征在于,所述将内存预先划分为多个内存分区,并将各所述内存分区分别分配为多个不同量级的内存块,包括: 根据需要将内存预先划分为多个相同/不同大小的内存分区; 将所述内存分区分别分配为多个不同量级的内存块,并将所述内存块的使用状态标识为未使用;其中,所述内存块的不同量级为128字节或/和512字节或/和1024字节或/和1536字节。
3.如权利要求1所述的方法,其特征在于,所述接收包含内存需求的网络数据包,并根据所述网络数据包中包含的内存需求的大小为所述网络数据包分配所述内存块的内存地址,包括: 接收包含内存需求的网络数据包; 检测各内存分区中使用状态为未使用的所述内存块中,是否存在内存容量等于或大于所述网络数据包的内存需求的所述内存块; 在各内存分区中存在内存容量等于或大于所述网络数据包的内存需求的所述内存块时,提取内存容量与所述网络数据包的内存需求之间差值最小的所述内存块的内存地址; 将提取的所述内存地址分配给所述网络数据包后,将提取内存地址的所述内存块的使用状态标识为已使用。
4.如权利要求3所述的方法,其特征在于,所述根据所述网络数据包中包含的内存需求的大小为所述网络数据包分配所述内存块的内存地址,还包括: 在各内存分区中不存在内存容量等于或大于所述网络数据包的内存需求的所述内存块时,检测当前内存分区中使用状态为未使用的所有内存块的总内存容量是否等于或大于所述网络数据包的内存需求; 在当前内存分区中所有内存块的总内存容量等于或大于所述网络数据包的内存需求时,将所述内存分区的未使用内存块重新分配为不同量级的内存块,且重新分配后的所述内存块中至少包含一个所属量级的内存容量与所述网络数据包的内存需求之间差值最小的内存块; 提取内存容量与所述网络数据包的内存需求之间差值最小的所述内存块的内存地址;将提取的所述内存地址分配给所述网络数据包后,将提取内存地址的所述内存块的使用状态标识为已使用。
5.如权利要求4所述的方法,其特征在于,所述根据所述网络数据包中包含的内存需求的大小为所述网络数据包分配所述内存块的内存地址,还包括: 在当前内存分区中所有内存块的总内存容量小于所述网络数据包的内存需求时,检测其他内存分区中使用状态为未使用的所有内存块的总内存容量是否等于或大于所述网络数据包的内存需求; 在其他内存分区中所有内存块的总内存容量等于或大于所述网络数据包的内存需求时,将其他所述内存分区的未使用内存块重新分配为不同量级的内存块,且重新分配后的所述内存块中至少包含一个所属量级的内存容量与所述网络数据包的内存需求之间差值最小的内存块; 提取内存容量与所述网络数据包的内存需求之间差值最小的所述内存块的内存地址;将提取的所述内存地址分配给所述网络数据包后,将提取内存地址的所述内存块的使用状态标识为已使用。
6.一种内存管理系统,其特征在于,包括: 内存分配模块,用于将内存预先划分为多个内存分区,将所述内存分区分别分配为多个不同量级的内存块; 内存地址分配模块,用于接收包含内存需求的网络数据包,并根据所述网络数据包中包含的内存需求的大小为所述网络数据包分配所述内存块的内存地址; 量级调整模块,用于检测所述内存分区中不同量级的所述内存块的使用率,并根据所述使用率重新调整所述内存分区中的内存块的量级。
7.如权利要求6所述的系统,其特征在于,所述内存分配模块包括: 分区子模块,用于根据需要将内存预先划分为多个相同/不同大小的内存分区;第一内存分配子模块,用于将所述内存分区分别分配为多个不同量级的内存块,并将所述内存块的使用状态标识为未使用;其中,所述内存块的不同量级为128字节或/和512字节或/和1024字节或/和1536字节。
8.如权利要求6所述的系统,其特征在于,所述内存地址分配模块包括: 数据包接收子模块,用于接收包含内存需求的网络数据包; 第一检测子模块,用于检测各内存分区中使用状态为未使用的所述内存块中,是否存在内存容量等于或大于所述网络数据包的内存需求的所述内存块; 内存地址提取子模块,用于在各内存分区中存在内存容量等于或大于所述网络数据包的内存需求的所述内存块时,提取内存容量与所述网络数据包的内存需求之间差值最小的所述内存块的内存地址; 第一内存地址分配模块,用于将提取的所述内存地址分配给所述网络数据包后,将提取内存地址的所述内存块的使用状态标识为已使用。
9.如权利要求8所述的系统,其特征在于,所述内存地址分配模块还包括: 第二检测子模块,用于在各内存分区中不存在内存容量等于或大于所述网络数据包的内存需求的所述内存块时,检测当前内存分区中使用状态为未使用的所有内存块的总内存容量是否等于或大于所述网络数据包的内存需求; 第二内存分配子模块,用于在当前内存分区中所有内存块的总内存容量等于或大于所述网络数据包的内存需求时,将所述内存分区的未使用内存块重新分配为不同量级的内存块,且重新分配后的所述内存块中至少包含一个所属量级的内存容量与所述网络数据包的内存需求之间差值最小的内存块; 第二内存地址分配子模块,用于提取内存容量与所述网络数据包的内存需求之间差值最小的所述内存块的内存地址;将提取的所述内存地址分配给所述网络数据包后,将提取内存地址的所述内存块的使用状态标识为已使用。
10.如权利要求9所述的系统,其特征在于,所述内存地址分配模块还包括: 第三检测子模块,用于在当前内存分区中所有内存块的总内存容量小于所述网络数据包的内存需求时,检测其他内存分区中使用状态为未使用的所有内存块的总内存容量是否等于或大于所述网络数据包的内存需求; 第三内存分配子模块,用于在其他内存分区中所有内存块的总内存容量等于或大于所述网络数据包的内存需求时,将其他所述内存分区的未使用内存块重新分配为不同量级的内存块,且重新分配后的所述内存块中至少包含一个所属量级的内存容量与所述网络数据包的内存需求之间差值最小的内存块; 第三内存地址分配子模块,用于提取内存容量与所述网络数据包的内存需求之间差值最小的所述内存块的内存地址;将提取的所述内存地址分配给所述网络数据包后,将提取内存地址的所述内存块的使用状态标识为已使用。
【专利摘要】本发明公开了一种内存管理方法及系统,用以高效合理地分配内存,提高处理效率。所述方法包括:将内存预先划分为多个内存分区,将所述内存分区分别分配为多个不同量级的内存块;接收包含内存需求的网络数据包,并根据所述网络数据包中包含的内存需求的大小为所述网络数据包分配所述内存块的内存地址;检测所述内存分区中不同量级的所述内存块的使用率,并根据所述使用率重新调整所述内存分区中的内存块的量级。该方案高效合理地分配内存,提高了处理效率的目的,且其大大提升了内存利用率和系统性能。
【IPC分类】G06F12-02, G06F9-50
【公开号】CN104778125
【申请号】CN201510159220
【发明人】赵如奇
【申请人】无锡天脉聚源传媒科技有限公司
【公开日】2015年7月15日
【申请日】2015年4月3日