[发明专利]基于持久存储既有计算结果来加速程序计算的方法及系统有效
申请号: | 201210496533.4 | 申请日: | 2012-11-28 |
公开(公告)号: | CN103019705A | 公开(公告)日: | 2013-04-03 |
发明(设计)人: | 李旭东 | 申请(专利权)人: | 南开大学 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 天津佳盟知识产权代理有限公司 12002 | 代理人: | 侯力 |
地址: | 300071*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 持久 存储 既有 计算 结果 加速 程序 方法 系统 | ||
1.基于持久存储既有计算结果来加速程序计算的方法,其特征在于,所述方法包括具体步骤如下:
第1、设定所要监控的函数;
第2、获取受监控函数集合到内存;
第3、加载待运行程序到内存;
第4、扫描待运行程序并针对受监控函数增加监控钩子函数代码;
第5、执行程序,直到执行到调用受监控函数点和程序结束点中的任意一个条件;
第6、若运程程序运行到程序结束点,则执行步骤14;
第7、若运行程序执行到调用受监控函数点处,则调用监控钩子函数代码,即执行步骤8;
第8、监控钩子函数代码从持久存储设备读取并检索是否存在受监控函数及参数的历史执行结果,若存在受监控函数及参数的历史执行结果,则执行步骤9;否则执行步骤11;
第9、监控钩子函数代码获取受监控函数及参数的历史执行结果,并赋给当前受监控函数的调用者;
第10、跳过对受监控函数实例的执行,进一步执行步骤13;
第11、因为不存在受监控函数及参数的历史执行结果,因此直接执行受监控函数实例,获取执行结果,并赋给当前受监控函数的调用者;
第12、将当前受监控函数执行实例的参数及执行结果存储在持久存储设备中;
第13、继续执行程序,执行步骤5;
第14、程序执行结束。
2.根据权利要求1所述的方法,其特征在于,第1步所述的设定所要监控的函数,是在操作系统运行下,任意时间动态设定所要监控的函数,包括增加新的监控函数、删除已有的监控函数,所有受监控的函数统称为“受监控函数集合”;每一个受监控函数的基本信息包括函数唯一索引号、函数名、参数个数、{参数名、参数类型}序列表、函数执行结果的有效时间,其中函数的返回值属于函数参数。
3.根据权利要求1所述的方法,其特征在于第4步所述的扫描待运行程序,是扫描待运行程序的源程序,或者扫描待运行程序的二进制程序代码,二进制程序代码也包括由Java、C#源代码生成的中间代码。
4.根据权利要求3所述的方法,其特征在于第4步所述的,扫描待运行程序的源程序并增加监控钩子函数代码的方法为:首先增加一个与受监控函数对应的监控钩子函数代码,监控钩子函数与受监控函数的函数声明相同,监控钩子函数的实现代码流程为本发明方法中的第7至13步骤;最后将待运行程序源代码中所有调用受监控函数的语句改为调用监控钩子函数语句,其中监控钩子函数中调用受监控函数的语句除外。
5.根据权利要求3所述的方法,其特征在于,扫描待运行程序的二进制程序代码并增加监控钩子函数代码的方法有两种,第1种方法为:首先创建与受监控函数的函数声明相同的监控钩子函数,并动态加载到运行程序的内存空间中,监控钩子函数的实现代码流程为本发明方法中的第7至13步骤;最后将将运行程序中所有调用受监控函数的调用指令作修改,用监控钩子函数的函数地址替换受监控函数的函数地址,其中监控钩子函数中调用受监控函数的语句除外;第2种方法为:首先创建与受监控函数的函数声明相同的监控钩子函数,并动态加载到运行程序的内存空间中,监控钩子函数的实现代码流程为本发明方法中的第7至13步骤;运行程序执行过程中,扫描指令序列,当发现将要调用受监控函数的指令时,直接改为调用受监控函数的监控钩子函数,其中监控钩子函数中调用受监控函数的语句除外。
6.根据权利要求1所述的方法,其特征在于,第4步所述受监控函数增加的监控钩子函数代码,首先在持久存储设备上检索受监控函数及参数的历史执行结果是否存在,若存在直接从持久存储设备上获取受监控函数及参数的历史执行结果,然后跳过对受监控函数的调用;否则需执行受监控函数,并将受监控函数的执行结果存储在持久存储设备上,最后受监控函数的监控钩子函数将执行权交给运行程序的下一指令代码。
7.根据权利要求1所述的方法,其特征在于,第8、9、12步中所涉及的持久存储设备指在掉电情况下已保存的数据不会丢失的存储设备,包括磁盘、磁带存储设备,也包括具有持久存储能力的数据库。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南开大学,未经南开大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210496533.4/1.html,转载请声明来源钻瓜专利网。