[发明专利]用于可执行代码的并行重放的方法、系统和存储设备有效
申请号: | 201780076149.X | 申请日: | 2017-12-13 |
公开(公告)号: | CN110062927B | 公开(公告)日: | 2023-03-21 |
发明(设计)人: | J·莫拉;J·C·A·贝扎;D·J·米霍克卡;I·卡雷拉斯 | 申请(专利权)人: | 微软技术许可有限责任公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京世辉律师事务所 16093 | 代理人: | 王俊 |
地址: | 美国华*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 可执行 代码 并行 重放 方法 系统 存储 设备 | ||
1.一种用于执行代码运行的并行重放的方法,被实施于包括一个或多个处理器的计算机系统处,所述方法包括:
解析包括多个追踪数据流的追踪数据,每个追踪数据流表示对多个可执行实体中的对应可执行实体的执行,包括从所述多个追踪数据流标识来自所述多个追踪数据流之中的多个追踪段,每个追踪段表示由所述可执行实体中的一个可执行实体在一段时间内执行的一个或多个事件;
定义所述多个追踪段之间的排序;
标识所述多个可执行实体中的至少一个可执行实体中的感兴趣点;
标识所述多个追踪段的当根据所述排序被线性地重放时将遇到所述感兴趣点的子集;
在执行池中对所述多个追踪段的所述子集排队以用于由所述一个或多个处理器重放;
由所述一个或多个处理器基于所述追踪数据来并行地重放所述多个追踪段的所述子集中的两个或更多个追踪段;
在重放所述多个追踪段的所述子集中的一个或多个追踪段的同时遇到定义的所述感兴趣点;以及
至少基于遇到定义的所述感兴趣点,从所述执行池移除所述多个追踪段的所述子集中的至少一个追踪段。
2.根据权利要求1所述的方法,其中所述多个追踪数据流定义跨所述多个可执行实体发生的多个可排序事件,每个可排序事件表示对应可执行实体中相对于所述多个可排序事件中的其他可排序事件可排序的事件的发生。
3.根据权利要求2所述的方法,其中所述多个追踪段至少基于所述多个可排序事件而被标识。
4.根据权利要求3所述的方法,其中所述追踪段中的与可执行实体相关联的一个或多个追踪段包括在所述可执行实体上在两个可排序事件之间发生的可执行事件。
5.根据权利要求1所述的方法,其中所述多个追踪数据流定义多个关键帧,每个关键帧包含允许对对应可执行实体的重放在所述关键帧处开始的信息。
6.根据权利要求5所述的方法,其中所述多个追踪段至少基于所述多个关键帧而被标识。
7.根据权利要求6所述的方法,其中所述追踪段中的与可执行实体相关联的一个或多个追踪段包括在所述可执行实体上在两个关键帧之间发生的可执行事件。
8.根据权利要求1所述的方法,还包括在重放所述多个追踪段的所述子集的同时标识与定义的所述感兴趣点的多次遇到;
基于所述多个追踪段之中的标识的所述排序来标识所述多次遇到中的特定遇到;以及
在显示设备处呈现所述特定遇到。
9.根据权利要求1所述的方法,其中所述感兴趣点包括变量、函数、源代码行或可执行指令中的一种或多种。
10.一种计算机系统,包括:
一个或多个处理器;以及
一个或多个计算机可读硬件存储设备,其上存储有计算机可执行指令,所述计算机可执行指令由所述一个或多个处理器执行以使得所述计算机系统执行至少以下:
解析包括多个追踪数据流的追踪数据,每个追踪数据流表示对多个可执行实体中的对应可执行实体的执行,以从所述多个追踪数据流标识来自所述多个追踪数据流之中的多个追踪段,每个追踪段表示由所述可执行实体中的一个可执行实体在一段时间内执行的一个或多个事件;
定义所述多个追踪段之间的排序;
标识所述多个可执行实体中的至少一个可执行实体中的感兴趣点;
标识所述多个追踪段的当根据所述排序而被线性地重放时将遇到所述感兴趣点的子集;
在执行池中对所述多个追踪段的所述子集排队以用于由所述一个或多个处理器重放;
由所述一个或多个处理器基于所述追踪数据来并行地重放所述多个追踪段的所述子集中的两个或更多个追踪段;
在重放所述多个追踪段的所述子集中的一个或多个追踪段的同时遇到定义的所述感兴趣点;以及
至少基于遇到定义的所述感兴趣点,从所述执行池移除所述多个追踪段的所述子集中的至少一个追踪段。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201780076149.X/1.html,转载请声明来源钻瓜专利网。