System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 国产一区二区三区无码免费,麻豆国产精品无码视频,国产AV无码专区亚洲AV手机麻豆
  • 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    編譯方法和電子設備技術

    技術編號:42966813 閱讀:8 留言:0更新日期:2024-10-15 13:11
    本申請實施例提供了一種編譯方法和電子設備,該方法包括:接收用戶對第一應用的第一操作;獲取第一應用響應第一操作時執行的各個指令物理地址的執行次數和各個指令物理地址的所屬函數;獲取第一應用中各個函數的執行次數;根據各個指令物理地址的執行次數、各個指令物理地址的所屬函數,以及第一應用中各個函數的執行次數,確定第一應用中各個函數對應的編譯信息,編譯信息包括熱度級別、分支跳轉概率和循環次數中的至少一項;基于編譯信息,分別對第一應用中各個函數進行AOT編譯。本申請能夠為各個函數進行針對性、且差異化的AOT編譯,能夠提高生成的目標代碼的質量,提升應用的運行性能。

    【技術實現步驟摘要】

    本申請涉及電子,具體涉及一種編譯方法和電子設備


    技術介紹

    1、電子設備在運行應用程序(application,app)時,應用程序的代碼需要編譯后才能執行。

    2、目前,安卓(android)操作系統支持的代碼執行方式主要包括解釋執行、即時(just-in-time,jit)編譯執行和預先(ahead-of-time,aot)編譯執行。其中,aot編譯執行是對解釋執行的次數達到一定閾值的函數(即熱點函數)進行編譯。

    3、隨著應用程序的使用時長的增加,熱點函數的數量會不斷增加,這使得aot編譯執行的占比也不斷增大,一般可以達到80%。因而,aot編譯生成的機器碼的質量,直接影響應用程序的運行性能。

    4、然而,使用中發現,相關技術中的aot編譯生成的機器碼的質量較低,導致應用程序的運行性能較低,影響用戶的使用體驗。


    技術實現思路

    1、本申請提供了一種編譯方法和電子設備,能夠基于函數的編譯信息,為各個函數進行針對性、且差異化的aot編譯,能夠提高生成的目標代碼的質量,提升應用的運行性能。

    2、第一方面,本申請提供一種編譯方法,應用于電子設備。該方法可以包括:接收用戶對第一應用的第一操作;獲取第一應用響應第一操作時執行的各個指令物理地址的執行次數和各個指令物理地址的所屬函數;獲取第一應用中各個函數的執行次數;根據各個指令物理地址的執行次數、各個指令物理地址的所屬函數,以及第一應用中各個函數的執行次數,確定第一應用中各個函數對應的編譯信息,編譯信息包括熱度級別、分支跳轉概率和循環次數中的至少一項,基于編譯信息,分別對第一應用中各個函數進行aot編譯。

    3、其中,第一應用可以為電子設備中安裝的任意一個應用,如下文中的應用1。示例性的,第一應用可以是視頻應用、即時通信應用、社交應用、音樂應用、游戲應用、通話應用、購物應用等,本申請實施例對第一應用的類型不作具體限定。第一操作可以是用戶作用于第一應用的任一個操作。

    4、函數是指應用中一個代碼塊。通常地,一個應用由多個函數組成,每個函數用于實現特定的功能。函數的執行次數(即下文中的函數執行次數)是指電子設備運行應用的過程中函數被調用的次數,應注意,函數的執行次數是指從電子設備首次運行某一應用開始,多次運行應用的過程中函數被調用的次數的累計值。

    5、指令物理地址是指電子設備的內存中的實際地址。電子設備的處理器通過指令物理地址來執行內存中的指令,因而,通過監測處理器執行的指令物理地址,可以追蹤處理器實際執行的函數內部的指令。應注意,各個指令物理地址可以理解為第一應用響應第一操作時采集到的多個指令物理地址中各種不同的指令物理地址,即上述各個指令物理地址均不相同。

    6、本申請實施例中,由于函數的執行次數可以反映應用運行過程中函數的實際調用頻率,指令物理地址的執行次數可以反映應用響應用戶操作時函數內部指令的具體執行情況。因而,基于采集到的各個指令物理地址的執行次數、各個指令物理地址的所屬函數以及應用中各個函數的執行次數,可以確定反映各個函數的實際執行情況的編譯信息。基于函數的編譯信息,為各個函數進行針對性、且差異化的aot編譯,能夠提高生成的目標代碼的質量,提升應用的運行性能。

    7、其中,熱度級別用于指示函數被調用頻率的高低。分支跳轉概率用于指示函數中分支指令對應的各個分支的跳轉概率。循環次數用于指示函數內部的循環體的循環次數。

    8、這樣一來,利用函數的熱度級別,可以對不同熱度級別的函數進行不同程度的函數內聯優化,這樣在執行基于優化的函數生成的目標代碼時,能夠減少函數的調用次數,提升應用的響應速度,同時還可以有效控制代碼量的增加,節省電子設備的內存空間。再者,基于函數中分支指令對應的各個分支的跳轉概率,可以對應用中的函數進行更為細致地編譯,能夠提高分支預測的成功率,減少分支未命中,提升應用的運行性能。另外,基于函數內部的循環體的循環次數,對應用中的各個函數進行循環展開優化,能夠減少循環控制開銷,提升應用的運行性能。

    9、在第一方面的一種可能的實現方式中,編譯信息包括熱度級別,上述基于編譯信息,分別對第一應用中各個函數進行aot編譯,包括:根據第一函數的熱度級別,確定第一閾值和第二閾值,其中,第一函數為第一應用中的任一個函數,第一閾值的大小與熱度級別的高低正相關,第二閾值的大小與熱度級別的高低正相關;若第一函數的指令數量小于或等于第一閾值,且第二函數的指令數量小于或等于第二閾值,將第二函數內嵌于第一函數,得到第三函數,其中,第二函數為第一函數調用的函數;根據第三函數,生成目標代碼。

    10、其中,第一閾值用于限制作為內聯函數(即下文中的固定inline函數)所允許的最大指令數量(即代碼量),即當函數的指令數量小于或等于第一閾值時,該函數可以作為內聯函數。第一閾值即下文中的代碼量閾值1。第二閾值用于限制作為被內聯函數(即下文中的被inline函數)所允許的最大指令數量,即當函數的指令數量小于或等于第二閾值時,該函數可以被嵌入對應的內聯函數。第二閾值即下文中的代碼量閾值2。也就是說,若第一閾值較大,則應用中更多的函數可以作為內聯函數。相反,若第一閾值較小,則應用中更少的函數可以作為內聯函數。同理,若第二閾值較大,則應用中更多的函數可以作為被內聯函數。相反,若第二閾值較小,則應用中更少的函數可以作為被內聯函數。因而,可以為不同熱度級別的函數,設置不同的第一閾值和第二閾值。

    11、示例性的,以第一函數為例,若第一函數的指令數量小于或等于第一閾值,且第二函數的指令數量小于或等于第二閾值,將第二函數內嵌于第一函數,即得到第三函數。對第三函數的字節碼進行轉換,生成目標代碼(即機器碼)。這樣,電子設備再次啟動第一應用后,當調用第一函數時,處理器直接運行目標代碼。

    12、該實現方式中,由于熱度級別較高的函數的調用頻率較高,因而,針對熱度級別較高的函數,設置較大的第一閾值和第二閾值。這樣的話,在aot編譯時,會對更多的熱度級別高的函數進行函數內聯優化,并根據優化的函數生成目標代碼,使得在執行目標代碼時,可以直接運行被調用的函數,能夠更大程度地減少函數的調用次數,提升應用的響應速度。再者,由于熱度級別較低的函數的調用頻率較低,因而,針對熱度級別較低的函數,設置較小的第一閾值和第二閾值。與熱度較高的函數不同的是,熱度級別較低的函數更少地進行函數內聯優化,這樣能夠有效控制目標代碼的代碼量的增加,節省電子設備的內存空間。

    13、在第一方面的一種可能的實現方式中,編譯信息包括循環次數,上述基于編譯信息,分別對第一應用中各個函數進行aot編譯,包括:根據第一函數中第一循環體的循環次數和第一循環體內部的指令數量,確定第一循環體對應的循環展開倍數,其中,第一函數為第一應用中的任一個函數,第一循環體為第一函數中的任一個循環體,循環展開倍數與循環體內部的指令數量負相關,且循環展開倍數與循環體的循環次數正相關;基于第一循環體對應的循環展開倍數,對第一循環體本文檔來自技高網...

    【技術保護點】

    1.一種編譯方法,應用于電子設備,其特征在于,所述方法包括:

    2.根據權利要求1所述的方法,其特征在于,所述編譯信息包括所述熱度級別,所述基于所述編譯信息,分別對所述第一應用中各個函數進行AOT編譯,包括:

    3.根據權利要求1所述的方法,其特征在于,所述編譯信息包括所述循環次數,所述基于所述編譯信息,分別對所述第一應用中各個函數進行AOT編譯,包括:

    4.根據權利要求1所述的方法,其特征在于,所述編譯信息包括所述分支跳轉概率,所述基于所述編譯信息,分別對所述第一應用中各個函數進行AOT編譯,包括:

    5.根據權利要求1所述的方法,其特征在于,所述編譯信息包括所述熱度級別,所述基于所述編譯信息,分別對所述第一應用中各個函數進行AOT編譯,包括:

    6.根據權利要求1所述的方法,其特征在于,所述根據各個所述指令物理地址的執行次數、各個所述指令物理地址的所屬函數,以及所述第一應用中各個函數的執行次數,確定所述第一應用中各個函數對應的編譯信息,包括:

    7.根據權利要求6所述的方法,其特征在于,所述根據第一函數的執行次數,確定所述第一函數的熱度級別,包括:

    8.根據權利要求6所述的方法,其特征在于,所述根據各個所述指令物理地址的執行次數、各個所述指令物理地址的所屬函數,以及各個函數的執行次數,確定所述第一函數中的各個分支的跳轉概率,包括:

    9.根據權利要求8所述的方法,其特征在于,所述根據各個所述指令物理地址的執行次數和各個所述指令物理地址的所屬函數,確定所述第一函數中的各個循環體的循環次數,包括:

    10.根據權利要求1所述的方法,其特征在于,所述根據各個所述指令物理地址的執行次數、各個所述指令物理地址的所屬函數,以及所述第一應用中各個函數的執行次數,確定所述第一應用中各個函數對應的編譯信息,包括:

    11.根據權利要求1-10中任一項所述的方法,其特征在于,所述獲取所述第一應用響應所述第一操作時執行的各個指令物理地址的執行次數和各個所述指令物理地址的所屬函數,包括:

    12.根據權利要求11所述的方法,其特征在于,所述分別對各個所述指令物理地址進行解析,確定各個所述指令物理地址的所屬函數,包括:

    13.根據權利要求12所述的方法,其特征在于,所述根據所述虛擬地址,確定所述第三指令物理地址的所屬函數,包括:

    14.根據權利要求11所述的方法,其特征在于,所述分別對各個所述指令物理地址進行解析,確定各個所述指令物理地址的所屬函數,包括:

    15.根據權利要求14所述的方法,其特征在于,所述響應于所述第一操作,獲取各個所述指令物理地址的執行次數,包括:

    16.根據權利要求15所述的方法,其特征在于,所述操作類型包括啟動應用的操作和/或作用于應用界面的操作;所述作用于應用界面的操作包括作用于應用界面中的控件的點擊操作、應用界面的切換操作和應用小窗切換操作中的至少一項。

    17.一種電子設備,其特征在于,包括:處理器、存儲器和接口;

    18.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質中存儲了計算機程序,當所述計算機程序被處理器執行時,使得所述處理器執行權利要求1至16中任一項所述的方法。

    ...

    【技術特征摘要】

    1.一種編譯方法,應用于電子設備,其特征在于,所述方法包括:

    2.根據權利要求1所述的方法,其特征在于,所述編譯信息包括所述熱度級別,所述基于所述編譯信息,分別對所述第一應用中各個函數進行aot編譯,包括:

    3.根據權利要求1所述的方法,其特征在于,所述編譯信息包括所述循環次數,所述基于所述編譯信息,分別對所述第一應用中各個函數進行aot編譯,包括:

    4.根據權利要求1所述的方法,其特征在于,所述編譯信息包括所述分支跳轉概率,所述基于所述編譯信息,分別對所述第一應用中各個函數進行aot編譯,包括:

    5.根據權利要求1所述的方法,其特征在于,所述編譯信息包括所述熱度級別,所述基于所述編譯信息,分別對所述第一應用中各個函數進行aot編譯,包括:

    6.根據權利要求1所述的方法,其特征在于,所述根據各個所述指令物理地址的執行次數、各個所述指令物理地址的所屬函數,以及所述第一應用中各個函數的執行次數,確定所述第一應用中各個函數對應的編譯信息,包括:

    7.根據權利要求6所述的方法,其特征在于,所述根據第一函數的執行次數,確定所述第一函數的熱度級別,包括:

    8.根據權利要求6所述的方法,其特征在于,所述根據各個所述指令物理地址的執行次數、各個所述指令物理地址的所屬函數,以及各個函數的執行次數,確定所述第一函數中的各個分支的跳轉概率,包括:

    9.根據權利要求8所述的方法,其特征在于,所述根據各個所述指令物理地址的執行次數和各個所述指令物理地址的所屬函數,確定所述第一函數中的各個循環體的循環次數,包括:

    <...

    【專利技術屬性】
    技術研發人員:張康路來承蔣子藝
    申請(專利權)人:榮耀終端有限公司
    類型:發明
    國別省市:

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 在线看无码的免费网站| 国产精品va在线观看无码| 熟妇无码乱子成人精品| 日韩免费a级毛片无码a∨| 亚洲精品无码久久| 制服在线无码专区| 亚洲精品人成无码中文毛片| 国产莉萝无码AV在线播放| 亚洲国产精品无码久久久久久曰| 无码人妻精品一区二| 熟妇人妻无码xxx视频| 中文字幕人成无码免费视频| 国产成人无码免费网站| av无码久久久久久不卡网站| 国产精品无码av在线播放| 中文字幕AV无码一区二区三区| 久久精品无码一区二区三区日韩| 丰满爆乳无码一区二区三区| 国模无码视频一区二区三区| 国产在线无码精品无码| 无码精品A∨在线观看中文| 国产精品爽爽V在线观看无码| 国产精品无码无片在线观看| 亚洲一区二区三区无码影院| 亚洲av永久无码精品表情包| 亚洲精品无码久久久久| 亚洲人成人无码.www石榴| 本道天堂成在人线av无码免费| 日韩国产精品无码一区二区三区| 无码一区二区三区亚洲人妻| 亚洲av午夜精品无码专区| 免费无码又爽又刺激聊天APP| 无码无遮挡又大又爽又黄的视频| 67194成l人在线观看线路无码| 中文无码字慕在线观看| 熟妇人妻AV无码一区二区三区| 日韩精品久久无码人妻中文字幕| 无码国产亚洲日韩国精品视频一区二区三区| 亚洲heyzo专区无码综合| 777爽死你无码免费看一二区| 一道久在线无码加勒比|