[发明专利]用于多线程环境下动态调整全局堆分配的方法和系统有效
申请号: | 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.vipzhuanli.com/pat/books/201210086688.0/2.html,转载请声明来源钻瓜专利网。