[發明專利]一種基于Dalvik虛擬機JNI機制中接口函數性能優化方法有效
| 申請號: | 201410177666.4 | 申請日: | 2014-04-29 |
| 公開(公告)號: | CN104035809B | 公開(公告)日: | 2017-11-17 |
| 發明(設計)人: | 吳艷霞;張國印;謝東良;許圣明;王彥彰 | 申請(專利權)人: | 哈爾濱工程大學 |
| 主分類號: | G06F9/455 | 分類號: | G06F9/455 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 150001 黑龍江省哈爾濱市南崗區*** | 國省代碼: | 黑龍江;23 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 dalvik 虛擬機 jni 機制 接口 函數 性能 優化 方法 | ||
1.一種基于Dalvik虛擬機JNI機制中接口函數GetMethodID和GetStaticMethodID性能優化方法,其特征在于:
(1)在目標接口函數的適當位置植入數據索引機制;
(2)獲取目標數據的標識常量并調用哈希函數計算標識常量的哈希值;
(3)根據哈希值在內建哈希表查找目標表項,如存在則直接返回目標數據地址,否則實施步驟(4);
(4)根據目標數據常量標識,調用原系統函數查找目標數據,如找到則將目標數據以及其標識常量的哈希值插入內建哈希表中并正確返回;否則拋出異常并返回;
所述步驟(1)中目標接口函數適當位置是指:對于GetMethodID函數,適當位置為GetMethodID函數調用dvmFindVirtualMethodHierByDescriptor函數對目標MethodID查找之前,在此處引入一個數據索引機制;對于GetStaticMethodID函數,適當位置為GetStaticMethodID函數調用dvmFindDirectMethodHierByDescriptor函數對目標MethodID查找之前;
所述步驟(2)中目標數據的標識常量是指目標方法所屬類的描述符、目標方法名以及簽名數據;其中計算標識常量的哈希值是指,調用Dalvik虛擬機提供的哈希函數計算目標數據標識常量字符串哈希值;
所述步驟(3)中內建哈希表是指,一個哈希表數據結構HashTable,每一個哈希單元包括三個成員變量,分別用于存儲標識常量的哈希值、標識常量的字符拼接以及目標方法的MethodID;
所述步驟(3)中根據該哈希值在內建哈希表查找目標表項是指,根據步驟2)中生成的哈希值在內建哈希表中查找匹配目標表項并返回目標方法的MethodID;
所述步驟(4)中根據目標數據常量標識,調用原系統函數查找目標數據是指,當步驟(3)的返回值為空時,接口函數將會調用原系統函數并根據目標數據常量標識查找目標方法的MethodID,其中對于接口函數GetMethodID,原系統函數為dvmFindVirtualMethodHierByDescriptor函數;對于接口與函數GetStaticMethodID,原系統函數為dvmFindDirectMethodHierByDescriptor函數;
所述步驟(4)將目標數據以及其標識常量的哈希值插入內建哈希表是指,當步驟(3)返回值為空時,接口函數GetMethodID或GetStaticMethodID通過原系統函數查找到目標方法的MethodID數據后,將MethodID數據和與之對應的常量標識以及常量標識的哈希值插入內建哈希表中。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于哈爾濱工程大學,未經哈爾濱工程大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410177666.4/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種牛肉營養復合米及其制備方法
- 下一篇:卡鉗環形凹槽高度檢具





