[發明專利]用于函數執行的緩存方法和裝置無效
| 申請號: | 200910241423.1 | 申請日: | 2009-12-08 |
| 公開(公告)號: | CN102087613A | 公開(公告)日: | 2011-06-08 |
| 發明(設計)人: | 樂以長;傅連舟;陸振華 | 申請(專利權)人: | 北京大學;北大方正集團有限公司;北京方正奧德計算機系統有限公司 |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46 |
| 代理公司: | 北京康信知識產權代理有限責任公司 11240 | 代理人: | 余剛 |
| 地址: | 100871*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 用于 函數 執行 緩存 方法 裝置 | ||
技術領域
本發明涉及計算機信息處理、軟件開發和程序設計領域,具體而言,涉及一種用于函數執行的緩存方法和裝置。
背景技術
在軟件開發過程中,函數是程序的最小單元,大的軟件系統都是由許多函數依據一定的業務邏輯組合而成,函數的執行速度決定了整個軟件系統的運行效率。通常情況下,函數被調用時依據程序邏輯從函數開頭執行整個函數體,從而得到整個函數的計算結果,這在數據變化快的場合是完全必要的。
但是在一些應用場合,如企業業務系統中的系統數據像組織機構、人員及權限數據等,這些數據通常保存在關系數據庫系統中,一般情況下這些數據很長時間不會改變。只要數據不改變,多次查詢相關信息得到的結果往往是相同的,一些操作比較消耗計算機資源,重復相同的操作對性能影響很大,使用系統的人越多,應用系統運行越慢。在軟件設計中緩存技術廣泛采用,但是目前的緩存技術適用于粗粒度數據的緩存,如上述組織機構信息,通常都是在系統啟動時將所有數據一次性讀入緩存;但是對于一些細粒度數據像權限數據,每個用戶、每個角色、針對不同的操作對象,權限都不一樣,一些權限需要進行復雜的運算才能得到,類似這樣的數據難以做到一次性將所有數據加載到緩存中。另外,目前的緩存都是在函數調用端將函數執行結果進行緩存,為了增加緩存功能,需要對調用端代碼進行修改。
在實現本發明過程中,發明人發現現有技術中至少存在如下問題:目前的緩存技術不支持細粒度函數執行結果的緩存,也不支持函數自管理緩存功能,如果函數調用方和函數提供方是不同的組織,調用方往往不清楚函數提供方的業務邏輯,不能確認被調用函數的執行結果能否被緩存及緩存的刷新時間,調用方往往不會采取緩存策略,因此影響了其使用效果。
發明內容
本發明旨在提供一種用于函數執行的緩存方法和裝置,能夠解決現有技術中使用的緩存技術不支持細粒度函數執行結果的緩存及不支持函數自管理緩存功能,如果函數調用方和函數提供方是不同的組織,調用方往往不清楚函數提供方的業務邏輯,不能確認被調用函數的執行結果能否被緩存及緩存的刷新時間,進而調用方往往不會采取緩存策略,因此影響了其使用效果的問題。
在本發明的實施例中,提供了一種用于函數執行的緩存方法,包括以下步驟:
將參數列表傳入被調用函數,并根據被調用函數的函數名和參數列表得到函數實例特征碼;
根據函數實例特征碼在緩存模塊中查詢函數執行結果;
若未檢索到函數執行結果,執行被調用函數;
以函數實例特征碼為鍵值將被調用函數的執行結果存入緩存模塊,并返回被調用函數的執行結果。
在本發明的實施例中還提供了一種用于函數執行的緩存裝置,包括:
調用模塊,用于向被調用函數發起調用請求,其中,被調用函數具有緩存功能且返回值為有效數據類型;
特征碼生成模塊,用于將參數列表傳入被調用函數,并根據被調用函數的函數名和參數列表得到函數實例特征碼;
緩存模塊,用于緩存被調用函數的執行結果;
執行模塊,用于根據函數實例特征碼在緩存模塊中查詢函數執行結果,若未檢索到函數執行結果,執行被調用函數,以函數實例特征碼為鍵值將被調用函數的執行結果存入緩存模塊,并返回被調用函數的執行結果。
在上述實施例中,通過在函數優化過程中,根據函數實例特征碼在緩存模塊中查詢函數執行結果,若未檢索到函數執行結果,執行被調用函數,并以函數實例特征碼為鍵值將被調用函數的執行結果存入緩存模塊,并返回被調用函數的執行結果,從而使調用方根據函數的執行結果而不需要執行被調用函數,當緩存模塊中沒有查詢到函數的執行結果時才執行被調用函數,細化了函數執行結果的緩存粒度,使得被調用函數不必重復的執行,提高了函數執行的效率,克服了現有技術中使用的緩存技術不支持細粒度執行結果的緩存及函數自管理緩存功能,如果函數調用方和函數提供方是不同的組織,調用方往往不清楚函數提供方的業務邏輯,不能確認被調用函數的執行結果能否被緩存及緩存的刷新時間,進而調用方往往不會采取緩存策略,因此影響了其使用效果的問題。
附圖說明
此處所說明的附圖用來提供對本發明的進一步理解,構成本申請的一部分,本發明的示意性實施例及其說明用于解釋本發明,并不構成對本發明的不當限定。在附圖中:
圖1示出了根據本發明的一個實施例的用于函數執行的緩存方法流程圖;
圖2示出了根據本發明的一個優選實施例的用于函數執行的緩存方法流程圖;
圖3示出了根據本發明的一個實施例的用于函數執行的緩存裝置示意圖。
具體實施方式
下面將參考附圖并結合實施例,來詳細說明本發明。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京大學;北大方正集團有限公司;北京方正奧德計算機系統有限公司,未經北京大學;北大方正集團有限公司;北京方正奧德計算機系統有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200910241423.1/2.html,轉載請聲明來源鉆瓜專利網。





