[發(fā)明專利]基于持久存儲(chǔ)既有計(jì)算結(jié)果來(lái)加速程序計(jì)算的方法及系統(tǒng)有效
| 申請(qǐng)?zhí)枺?/td> | 201210496533.4 | 申請(qǐng)日: | 2012-11-28 |
| 公開(kāi)(公告)號(hào): | CN103019705A | 公開(kāi)(公告)日: | 2013-04-03 |
| 發(fā)明(設(shè)計(jì))人: | 李旭東 | 申請(qǐng)(專利權(quán))人: | 南開(kāi)大學(xué) |
| 主分類(lèi)號(hào): | G06F9/44 | 分類(lèi)號(hào): | G06F9/44 |
| 代理公司: | 天津佳盟知識(shí)產(chǎn)權(quán)代理有限公司 12002 | 代理人: | 侯力 |
| 地址: | 300071*** | 國(guó)省代碼: | 天津;12 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 持久 存儲(chǔ) 既有 計(jì)算 結(jié)果 加速 程序 方法 系統(tǒng) | ||
技術(shù)領(lǐng)域
本發(fā)明屬于計(jì)算機(jī)領(lǐng)域,主要關(guān)注提高程序計(jì)算的執(zhí)行效率。
背景技術(shù)
目前提高程序計(jì)算的執(zhí)行效率主要有兩類(lèi)手段,一類(lèi)是提高計(jì)算機(jī)硬件CPU的處理能力;另外一類(lèi)是提高程序本身的并發(fā)執(zhí)行度。本發(fā)明則從單個(gè)程序單次運(yùn)行中多次調(diào)用同一個(gè)函數(shù)及相同參數(shù)值、多個(gè)程序單次運(yùn)行中多次調(diào)用同一個(gè)函數(shù)及相同參數(shù)值、程序的多次執(zhí)行中多次調(diào)用同一個(gè)函數(shù)及相同參數(shù)值,因此有效減少重復(fù)計(jì)算次數(shù)將會(huì)有效地提高程序計(jì)算的執(zhí)行效率。
發(fā)明內(nèi)容
本發(fā)明目的是為了提高程序計(jì)算的執(zhí)行效率,提供一種基于持久存儲(chǔ)既有計(jì)算結(jié)果來(lái)加速程序計(jì)算的方法及系統(tǒng)。
基于持久存儲(chǔ)既有計(jì)算結(jié)果來(lái)加速程序計(jì)算的方法包括:設(shè)定所要監(jiān)控的函數(shù);動(dòng)態(tài)監(jiān)控受監(jiān)控函數(shù)的執(zhí)行實(shí)例;若受監(jiān)控函數(shù)實(shí)例未運(yùn)行過(guò),則直接執(zhí)行受監(jiān)控函數(shù)代碼,并將受監(jiān)控函數(shù)執(zhí)行實(shí)例的執(zhí)行結(jié)果存儲(chǔ)在持久存儲(chǔ)設(shè)備中;若受監(jiān)控函數(shù)實(shí)例已運(yùn)行過(guò),則直接從持久存儲(chǔ)設(shè)備中將受監(jiān)控函數(shù)執(zhí)行實(shí)例的執(zhí)行結(jié)果取出來(lái),作為本次受控函數(shù)執(zhí)行實(shí)例的結(jié)果。
基于持久存儲(chǔ)既有計(jì)算結(jié)果來(lái)加速程序計(jì)算的方法,包括具體步驟如下:
第1、設(shè)定所要監(jiān)控的函數(shù);
第2、獲取受監(jiān)控函數(shù)集合到內(nèi)存;
第3、加載待運(yùn)行程序到內(nèi)存;
第4、掃描待運(yùn)行程序并針對(duì)受監(jiān)控函數(shù)增加監(jiān)控鉤子函數(shù)代碼;
第5、執(zhí)行程序,直到執(zhí)行到調(diào)用受監(jiān)控函數(shù)點(diǎn)和程序結(jié)束點(diǎn)中的任意一個(gè)條件;
第6、若運(yùn)程程序運(yùn)行到程序結(jié)束點(diǎn),則執(zhí)行步驟14;
第7、若運(yùn)行程序執(zhí)行到調(diào)用受監(jiān)控函數(shù)點(diǎn)處,則調(diào)用監(jiān)控鉤子函數(shù)代碼,即執(zhí)行步驟8;
第8、監(jiān)控鉤子函數(shù)代碼從持久存儲(chǔ)設(shè)備讀取并檢索是否存在受監(jiān)控函數(shù)及參數(shù)的歷史執(zhí)行結(jié)果,若存在受監(jiān)控函數(shù)及參數(shù)的歷史執(zhí)行結(jié)果,則執(zhí)行步驟9;否則執(zhí)行步驟11;
第9、監(jiān)控鉤子函數(shù)代碼獲取受監(jiān)控函數(shù)及參數(shù)的歷史執(zhí)行結(jié)果,并賦給當(dāng)前受監(jiān)控函數(shù)的調(diào)用者;
第10、跳過(guò)對(duì)受監(jiān)控函數(shù)實(shí)例的執(zhí)行,進(jìn)一步執(zhí)行步驟13;
第11、因?yàn)椴淮嬖谑鼙O(jiān)控函數(shù)及參數(shù)的歷史執(zhí)行結(jié)果,因此直接執(zhí)行受監(jiān)控函數(shù)實(shí)例,獲取執(zhí)行結(jié)果,并賦給當(dāng)前受監(jiān)控函數(shù)的調(diào)用者;
第12、將當(dāng)前受監(jiān)控函數(shù)執(zhí)行實(shí)例的參數(shù)及執(zhí)行結(jié)果存儲(chǔ)在持久存儲(chǔ)設(shè)備中;
第13、繼續(xù)執(zhí)行程序,執(zhí)行步驟5;
第14、程序執(zhí)行結(jié)束。
其中,第1步驟所述的“設(shè)定所要監(jiān)控的函數(shù)”,是在操作系統(tǒng)運(yùn)行下,任意時(shí)間可以動(dòng)態(tài)設(shè)定所要監(jiān)控的函數(shù),包括增加新的監(jiān)控函數(shù)、刪除已有的監(jiān)控函數(shù)。所有受監(jiān)控的函數(shù)統(tǒng)稱為“受監(jiān)控函數(shù)集合”。每一個(gè)受監(jiān)控函數(shù)的基本信息包括函數(shù)唯一索引號(hào)、函數(shù)名、參數(shù)個(gè)數(shù)、{參數(shù)名、參數(shù)類(lèi)型}序列表、函數(shù)執(zhí)行結(jié)果的有效時(shí)間,其中函數(shù)的返回值屬于函數(shù)參數(shù)。
第4步驟所述的“掃描待運(yùn)行程序,針對(duì)受監(jiān)控函數(shù)增加監(jiān)控鉤子函數(shù)代碼”中,掃描待運(yùn)行程序既可以是掃描待運(yùn)行程序的源程序,也可以是掃描待運(yùn)行程序的二進(jìn)制程序代碼,二進(jìn)制程序代碼也包括由Java、C#等源代碼生成的中間代碼。
掃描待運(yùn)行程序的源程序并增加監(jiān)控鉤子函數(shù)代碼的方法為:首先增加一個(gè)與受監(jiān)控函數(shù)對(duì)應(yīng)的監(jiān)控鉤子函數(shù)代碼,監(jiān)控鉤子函數(shù)與受監(jiān)控函數(shù)的函數(shù)聲明相同,監(jiān)控鉤子函數(shù)的實(shí)現(xiàn)代碼流程為本發(fā)明方法中的第7至13步驟;最后將待運(yùn)行程序源代碼中所有調(diào)用受監(jiān)控函數(shù)的語(yǔ)句改為調(diào)用監(jiān)控鉤子函數(shù)語(yǔ)句,其中監(jiān)控鉤子函數(shù)中調(diào)用受監(jiān)控函數(shù)的語(yǔ)句除外。
掃描待運(yùn)行程序的二進(jìn)制程序代碼并增加監(jiān)控鉤子函數(shù)代碼的方法有兩種。第1種方法為:首先創(chuàng)建與受監(jiān)控函數(shù)的函數(shù)聲明相同的監(jiān)控鉤子函數(shù),并動(dòng)態(tài)加載到運(yùn)行程序的內(nèi)存空間中,監(jiān)控鉤子函數(shù)的實(shí)現(xiàn)代碼流程為本發(fā)明方法中的第7至13步驟;最后將將運(yùn)行程序中所有調(diào)用受監(jiān)控函數(shù)的調(diào)用指令作修改,用監(jiān)控鉤子函數(shù)的函數(shù)地址替換受監(jiān)控函數(shù)的函數(shù)地址,其中監(jiān)控鉤子函數(shù)中調(diào)用受監(jiān)控函數(shù)的語(yǔ)句除外。第2種方法為:首先創(chuàng)建與受監(jiān)控函數(shù)的函數(shù)聲明相同的監(jiān)控鉤子函數(shù),并動(dòng)態(tài)加載到運(yùn)行程序的內(nèi)存空間中,監(jiān)控鉤子函數(shù)的實(shí)現(xiàn)代碼流程為本發(fā)明方法中的第7至13步驟;運(yùn)行程序執(zhí)行過(guò)程中,掃描指令序列,當(dāng)發(fā)現(xiàn)將要調(diào)用受監(jiān)控函數(shù)的指令時(shí),直接改為調(diào)用受監(jiān)控函數(shù)的監(jiān)控鉤子函數(shù),其中監(jiān)控鉤子函數(shù)中調(diào)用受監(jiān)控函數(shù)的語(yǔ)句除外。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于南開(kāi)大學(xué),未經(jīng)南開(kāi)大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210496533.4/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 上一篇:一種蘑菇處理機(jī)
- 下一篇:一種辣椒熱水池結(jié)構(gòu)
- 動(dòng)態(tài)存儲(chǔ)管理裝置及方法
- 一種存儲(chǔ)方法、服務(wù)器及存儲(chǔ)控制器
- 一種基于存儲(chǔ)系統(tǒng)的控制方法及裝置
- 一種信息的存儲(chǔ)控制方法
- 一種數(shù)據(jù)存儲(chǔ)方法及裝置
- 數(shù)據(jù)存儲(chǔ)方法、裝置、計(jì)算機(jī)設(shè)備以及存儲(chǔ)介質(zhì)
- 一種數(shù)據(jù)存儲(chǔ)控制方法及裝置
- 存儲(chǔ)設(shè)備、存儲(chǔ)系統(tǒng)及存儲(chǔ)方法
- 物料存儲(chǔ)方法及系統(tǒng)
- 基于雙芯智能電表的數(shù)據(jù)分類(lèi)存儲(chǔ)方法和裝置





