[發明專利]性能瓶頸的定位方法、定位裝置、電子設備及存儲介質在審
| 申請號: | 202010131858.7 | 申請日: | 2020-02-29 |
| 公開(公告)號: | CN111382044A | 公開(公告)日: | 2020-07-07 |
| 發明(設計)人: | 韓澗武 | 申請(專利權)人: | 深圳市騰訊信息技術有限公司 |
| 主分類號: | G06F11/34 | 分類號: | G06F11/34;G06F8/41;G06F8/30 |
| 代理公司: | 深圳翼盛智成知識產權事務所(普通合伙) 44300 | 代理人: | 汪阮磊 |
| 地址: | 518000 廣東省深圳市*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 性能 瓶頸 定位 方法 裝置 電子設備 存儲 介質 | ||
本申請提供了一種性能瓶頸的定位方法、定位裝置、電子設備及存儲介質,通過獲取待測試的目標進程的寄存器信息,得到目標進程內過程的源代碼名稱,并與過程的耗時占比一同展示,得到C/C++函數級別的性能瓶頸分析定位;通過進一步的分析虛擬機的調用棧,獲取虛擬機的狀態機信息,進而獲取虛擬機的主函數對應的子函數的源碼信息,得到腳本語言代碼級別的性能瓶頸定位分析;實現了多種語言混合使用場景下,同時定位到C/C++函數級別和腳本語言代碼級別的性能瓶頸方案,且該方案由計算機運行,簡單快速、準確率高、成本低。
技術領域
本申請涉及數據處理領域,尤其涉及一種性能瓶頸的定位方法、定位裝置、電子設備及存儲介質。
背景技術
游戲開發中,出于運行性能與開發效率的綜合考慮,通常會采用多種語言結合的方式,比如一些游戲引擎底層均采用了C++實現底層框架,而上層業務邏輯則采用各種靈活的腳本語言,通過將各種語言結合以達到軟件運行性能與開發效率的完美兼顧。
在實際開發中,很容易因為一些特殊的業務需求或代碼的缺陷導致代碼產生性能瓶頸,然而現有的工具僅能定位到C/C++函數級別的性能瓶頸,沒有辦法定位到腳本語言代碼級別的性能瓶頸。要定位到代碼級別的性能瓶頸,一般的處理方法是通過不斷縮小代碼范圍,最終定位到瓶頸處,這種方案成本高,需要技術人員花費大量的時間挨個排查,工作量大,容易出錯。
發明內容
本申請提供一種性能瓶頸的定位方法、定位裝置、電子設備及存儲介質,以實現多種語言混合使用場景下的性能瓶頸的定位。
為實現上述目的,本申請提供的技術方案如下:
本申請提供一種性能瓶頸的定位方法,其包括:
獲取待測試的目標進程的寄存器信息,得到所述目標進程內過程的源代碼名稱,所述目標進程包括多個過程,至少兩個所述過程的函數語言不同,所述寄存器信息包括用于確定所述過程對應所述源代碼名稱的參數;
展示所述過程的源代碼名稱以及耗時占比,根據所述耗時占比確定性能瓶頸對應的目標過程的目標源代碼名稱,并使光標位于所述目標源代碼名稱上;
在檢測到分析指令時,進行所述目標源代碼名稱與虛擬機主函數名稱的匹配;
在所述源代碼名稱與所述虛擬機的主函數名稱相匹配時,分析所述虛擬機的調用棧,獲取所述虛擬機的狀態機信息;
根據所述虛擬機的狀態機信息,獲取所述虛擬機的主函數對應的子函數的源碼信息;
展示所述子函數的源碼信息以及耗時占比,并確定性能瓶頸對應的子函數信息。
一種性能瓶頸的定位裝置,其包括:
第一獲取模塊,用于獲取待測試的目標進程的寄存器信息,得到所述目標進程內過程的源代碼名稱,所述目標進程包括多個過程,至少兩個所述過程的函數語言不同,所述寄存器信息包括用于確定所述過程對應所述源代碼名稱的參數;
第一展示模塊,用于展示所述過程的源代碼名稱以及耗時占比,同時用于根據所述耗時占比確定性能瓶頸對應的目標過程的目標源代碼名稱,并使光標位于所述目標源代碼名稱上;
檢測模塊,用于檢測分析指令;
匹配模塊,用于匹配所述目標源代碼名稱與虛擬機主函數名稱;
第二獲取模塊,用于分析所述虛擬機的調用棧,獲取所述虛擬機的狀態機信息;
第三獲取模塊,用于獲取所述虛擬機的主函數對應的子函數的源碼信息;
第二展示模塊,用于展示所述子函數的源碼信息、以及所述子函數的耗時占比,同時用于確定性能瓶頸對應的子函數信息。
一種電子設備,其包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于深圳市騰訊信息技術有限公司,未經深圳市騰訊信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010131858.7/2.html,轉載請聲明來源鉆瓜專利網。





