本發(fā)明涉及計算機,尤其涉及一種基于渲染性能數(shù)據(jù)的熱點分析方法、裝置及電子設(shè)備。
背景技術(shù):
1、隨著移動互聯(lián)網(wǎng)的高速發(fā)展,智能手機、平板電腦等移動終端越來越普及,各領(lǐng)域的app應(yīng)運而生。目前市場上的app的種類較多,良莠不齊,很多app要求移動終端具備較強的圖形渲染性能,以充分發(fā)揮app的完備功能,例如游戲app、vr產(chǎn)品展示app、教育學(xué)習(xí)app等,均有較高的渲染性能要求,但高渲染容易造成設(shè)備發(fā)熱過高,進而影響智能終端的整體性能發(fā)揮,這阻礙了高渲染需求的app的進一步普及,用戶體驗較差。
2、相關(guān)技術(shù)在定位高渲染帶來的發(fā)熱熱點時,通常采用模塊對比測試的方法,通過開關(guān)不同的模塊,然后對比開關(guān)前后的模塊功耗變化來分析每個模塊對于功耗的影響,這種黑盒測試分析的熱力粒度較大,最終只能在模塊之間進行取舍,難以針對模塊內(nèi)部降低功耗,準確度較低。
技術(shù)實現(xiàn)思路
1、本發(fā)明實施例的主要目的在于提出一種熱力粒度小且準確度高的基于渲染性能數(shù)據(jù)的熱點分析方法、裝置及電子設(shè)備,能夠準確定位渲染性能數(shù)據(jù)的熱點,進而提升用戶使用體驗。
2、為實現(xiàn)上述目的,本發(fā)明實施例的一方面提出了一種基于渲染性能數(shù)據(jù)的熱點分析方法,包括以下步驟:
3、獲取智能終端的功耗信息,基于所述功耗信息確定功耗大于預(yù)設(shè)閾值的目標畫面;
4、從所述目標畫面提取至少一個畫面幀的渲染信息;其中,所述渲染信息包括實際畫面渲染過程中使用的第一著色器集合以及著色器的渲染數(shù)據(jù);
5、根據(jù)所述渲染信息還原渲染管線的狀態(tài)信息,并得到所述渲染管線中還原的第二著色器集合;
6、從所述第一著色器集合和第二著色器集合中確定相互匹配的著色器組合;
7、根據(jù)所述第一著色器集合的著色器的渲染數(shù)據(jù),將多個所述著色器組合在對應(yīng)畫面幀中的渲染發(fā)熱信息進行匯總排序,得到熱點數(shù)據(jù)聚合結(jié)果;
8、根據(jù)所述熱點數(shù)據(jù)聚合結(jié)果確定實際畫面渲染過程中的性能熱點對象。
9、在一些實施例中,所述獲取智能終端的功耗信息,基于所述功耗信息確定功耗大于預(yù)設(shè)閾值的目標畫面,包括以下步驟:
10、根據(jù)功耗查詢指令對智能終端在目標應(yīng)用場景下的運行狀況進行功耗獲取處理,得到智能終端的功耗信息;
11、根據(jù)所述功耗信息,將多個候選畫面的功耗數(shù)據(jù)進行排序,確定其中高功耗的所述目標畫面。
12、在一些實施例中,所述從所述目標畫面提取至少一個畫面幀的渲染信息,包括以下步驟:
13、通過渲染分析工具,從所述目標畫面中截取多個畫面幀的渲染過程,得到每個畫面幀對應(yīng)的繪制指令的發(fā)令時間信息;
14、根據(jù)所述發(fā)令時間信息,通過性能工具截取對應(yīng)時間節(jié)點的渲染信息;其中,所述渲染信息包括所述智能終端在該時間節(jié)點的性能指標數(shù)據(jù)以及渲染指令;所述渲染指令包括實際畫面渲染過程中使用的第一著色器集合。
15、在一些實施例中,所述根據(jù)所述渲染信息還原渲染管線的狀態(tài)信息,并得到所述渲染管線中還原的第二著色器集合,包括以下步驟:
16、根據(jù)所述渲染信息中的性能指標數(shù)據(jù),獲取在渲染過程中的管線調(diào)用狀態(tài);
17、根據(jù)所述管線調(diào)用狀態(tài),還原得到每次切換所述渲染管線時對應(yīng)的第二著色器集合。
18、在一些實施例中,所述根據(jù)所述渲染信息中的性能指標數(shù)據(jù),獲取在渲染過程中的管線調(diào)用狀態(tài),包括以下步驟:
19、獲取性能工具截取的渲染信息;
20、對所述渲染信息進行解壓處理,得到所述渲染信息中的性能指標數(shù)據(jù)以及渲染數(shù)據(jù)庫;其中,所述渲染數(shù)據(jù)庫用于存儲渲染管線與著色器之間的對應(yīng)關(guān)系;
21、根據(jù)所述性能指標數(shù)據(jù),確定在渲染過程中切換渲染管線時每個渲染管線的第一標識信息。
22、在一些實施例中,所述根據(jù)所述管線調(diào)用狀態(tài),還原得到每次切換所述渲染管線時對應(yīng)的第二著色器集合,包括以下步驟:
23、根據(jù)所述渲染管線的所述第一標識信息,從所述渲染數(shù)據(jù)庫中確定所述渲染管線使用的著色器的第二標識信息;
24、根據(jù)所述第一標識信息與所述第二標識信息之間的對應(yīng)關(guān)系,確定每次切換渲染管線時當前渲染管線使用的著色器,構(gòu)建所述第二著色器集合。
25、在一些實施例中,所述根據(jù)所述渲染信息還原渲染管線的狀態(tài)信息,并得到所述渲染管線中還原的第二著色器集合,還包括以下步驟:
26、根據(jù)所述性能指標數(shù)據(jù)和所述渲染管線的第一標識信息,確定渲染過程中的渲染管線的調(diào)用順序;
27、記錄每次配置渲染管線的調(diào)用狀態(tài)后所涉及的渲染指令使用的著色器的第二標識信息;
28、將當前渲染指令使用的著色器的第二標識信息作為所述渲染管線匹配的著色器的標識信息,并將渲染管線與著色器的配對關(guān)系存儲到渲染數(shù)據(jù)庫中。
29、在一些實施例中,所述從所述第一著色器集合和第二著色器集合中確定相互匹配的著色器組合,包括以下步驟:
30、從渲染分析工具獲取的渲染信息中提取繪制指令;
31、提取所述繪制指令使用的第一著色器集合中各個著色器的第一著色器文件,并提取所述第二著色器集合中各個著色器的第二著色器文件;
32、分別計算所述第一著色器文件和所述第二著色器文件的文件標識信息;
33、當所述第一著色器文件與所述第二著色器文件的文件標識信息相同時,建立對應(yīng)的著色器匹配關(guān)系,得到所述著色器組合。
34、在一些實施例中,所述分別計算所述第一著色器文件和所述第二著色器文件的文件標識信息,包括以下步驟:
35、采用哈希算法,分別計算所述第一著色器文件的第一哈希值和所述第二著色器文件的第二哈希值;
36、將所述第一哈希值和所述第二哈希值作為所述文件標識信息;
37、其中,所述著色器組合中相互匹配的兩個著色器的哈希值相等。
38、在一些實施例中,所述根據(jù)所述第一著色器集合的著色器的渲染數(shù)據(jù),將多個所述著色器組合在對應(yīng)畫面幀中的渲染發(fā)熱信息進行匯總排序,得到熱點數(shù)據(jù)聚合結(jié)果,包括以下步驟:
39、根據(jù)所述第一著色器集合的著色器的渲染數(shù)據(jù),獲取每個所述著色器組合對應(yīng)的待排序參數(shù);其中,所述待排序參數(shù)包括每幀畫面的總繪制時間、帶寬占用、浮點運算指令數(shù)以及采樣指令數(shù)中至少一種;
40、根據(jù)所述待排序參數(shù),通過數(shù)值升序或數(shù)值降序的方式進行匯總排序,得到各個所述著色器組合的次序,進而確定所述熱點數(shù)據(jù)聚合結(jié)果。
41、在一些實施例中,所述根據(jù)所述熱點數(shù)據(jù)聚合結(jié)果確定實際畫面渲染過程中的性能熱點對象,包括以下步驟:
42、根據(jù)所述熱點數(shù)據(jù)聚合結(jié)果,確定各對著色器組合對實際畫面渲染過程的性能消耗貢獻度;
43、將性能消耗貢獻度高于預(yù)設(shè)閾值的著色器組合確定為實際畫面渲染過程中的性能熱點對象。
44、在一些實施例中,所述方法還包括:
45、針對所述性能熱點對象執(zhí)行優(yōu)化處理;其中,所述優(yōu)化處理包括停止著色器執(zhí)行動作、重啟著色器執(zhí)行動作以及重新配置渲染管線的待執(zhí)行著色器中至少一種。
46、本發(fā)明實施例的另一方面還提供了一種基于渲染性能數(shù)據(jù)的熱點分析裝置,包括:
47、第一模塊,用于獲取智能終端的功耗信息,基于所述功耗信息確定功耗大于預(yù)設(shè)閾值的目標畫面;
48、第二模塊,用于從所述目標畫面提取至少一個畫面幀的渲染信息;其中,所述渲染信息包括實際畫面渲染過程中使用的第一著色器集合以及著色器的渲染數(shù)據(jù);
49、第三模塊,用于根據(jù)所述渲染信息還原渲染管線的狀態(tài)信息,并得到所述渲染管線中還原的第二著色器集合;
50、第四模塊,用于從所述第一著色器集合和第二著色器集合中確定相互匹配的著色器組合;
51、第五模塊,用于根據(jù)所述第一著色器集合的著色器的渲染數(shù)據(jù),將多個所述著色器組合在對應(yīng)畫面幀中的渲染發(fā)熱信息進行匯總排序,得到熱點數(shù)據(jù)聚合結(jié)果;
52、第六模塊,用于根據(jù)所述熱點數(shù)據(jù)聚合結(jié)果確定實際畫面渲染過程中的性能熱點對象。
53、在一些實施例中,所述第一模塊,包括:
54、第一單元,用于根據(jù)功耗查詢指令對智能終端在目標應(yīng)用場景下的運行狀況進行功耗獲取處理,得到智能終端的功耗信息;
55、第二單元,用于根據(jù)所述功耗信息,將多個候選畫面的功耗數(shù)據(jù)進行排序,確定其中高功耗的所述目標畫面。
56、在一些實施例中,所述第二模塊,包括:
57、第三單元,用于通過渲染分析工具,從所述目標畫面中截取多個畫面幀的渲染過程,得到每個畫面幀對應(yīng)的繪制指令的發(fā)令時間信息;
58、第四單元,用于根據(jù)所述發(fā)令時間信息,通過性能工具截取對應(yīng)時間節(jié)點的渲染信息;其中,所述渲染信息包括所述智能終端在該時間節(jié)點的性能指標數(shù)據(jù)以及渲染指令;所述渲染指令包括實際畫面渲染過程中使用的第一著色器集合。
59、在一些實施例中,所述第三模塊,包括:
60、第五單元,用于根據(jù)所述渲染信息中的性能指標數(shù)據(jù),獲取在渲染過程中的管線調(diào)用狀態(tài);
61、第六單元,用于根據(jù)所述管線調(diào)用狀態(tài),還原得到每次切換所述渲染管線時對應(yīng)的第二著色器集合。
62、在一些實施例中,所述第五單元,包括:
63、第一子單元,用于獲取性能工具截取的渲染信息;
64、第二子單元,用于對所述渲染信息進行解壓處理,得到所述渲染信息中的性能指標數(shù)據(jù)以及渲染數(shù)據(jù)庫;其中,所述渲染數(shù)據(jù)庫用于存儲渲染管線與著色器之間的對應(yīng)關(guān)系;
65、第三子單元,用于根據(jù)所述性能指標數(shù)據(jù),確定在渲染過程中切換渲染管線時每個渲染管線的第一標識信息。
66、在一些實施例中,所述第六單元,包括:
67、第四子單元,用于根據(jù)所述渲染管線的所述第一標識信息,從所述渲染數(shù)據(jù)庫中確定所述渲染管線使用的著色器的第二標識信息;
68、第五子單元,用于根據(jù)所述第一標識信息與所述第二標識信息之間的對應(yīng)關(guān)系,確定每次切換渲染管線時當前渲染管線使用的著色器,構(gòu)建所述第二著色器集合。
69、在一些實施例中,所述第三模塊,還包括:
70、第七單元,用于根據(jù)所述性能指標數(shù)據(jù)和所述渲染管線的第一標識信息,確定渲染過程中的渲染管線的調(diào)用順序;
71、第八單元,用于記錄每次配置渲染管線的調(diào)用狀態(tài)后所涉及的渲染指令使用的著色器的第二標識信息;
72、第九單元,用于將當前渲染指令使用的著色器的第二標識信息作為所述渲染管線匹配的著色器的標識信息,并將渲染管線與著色器的配對關(guān)系存儲到渲染數(shù)據(jù)庫中。
73、在一些實施例中,所述第四模塊,包括:
74、第十單元,用于從渲染分析工具獲取的渲染信息中提取繪制指令;
75、第十一單元,用于提取所述繪制指令使用的第一著色器集合中各個著色器的第一著色器文件,并提取所述第二著色器集合中各個著色器的第二著色器文件;
76、第十二單元,用于分別計算所述第一著色器文件和所述第二著色器文件的文件標識信息;
77、第十三單元,用于當所述第一著色器文件與所述第二著色器文件的文件標識信息相同時,建立對應(yīng)的著色器匹配關(guān)系,得到所述著色器組合。
78、在一些實施例中,所述第十二單元,包括:
79、第六子單元,用于采用哈希算法,分別計算所述第一著色器文件的第一哈希值和所述第二著色器文件的第二哈希值;
80、第七子單元,用于將所述第一哈希值和所述第二哈希值作為所述文件標識信息;
81、其中,所述著色器組合中相互匹配的兩個著色器的哈希值相等。
82、在一些實施例中,所述第五模塊,包括:
83、第十四單元,用于根據(jù)所述第一著色器集合的著色器的渲染數(shù)據(jù),獲取每個所述著色器組合對應(yīng)的待排序參數(shù);其中,所述待排序參數(shù)包括每幀畫面的總繪制時間、帶寬占用、浮點運算指令數(shù)以及采樣指令數(shù)中至少一種;
84、第十五單元,用于根據(jù)所述待排序參數(shù),通過數(shù)值升序或數(shù)值降序的方式進行匯總排序,得到各個所述著色器組合的次序,進而確定所述熱點數(shù)據(jù)聚合結(jié)果。
85、在一些實施例中,所述第六模塊,包括:
86、第十六單元,用于根據(jù)所述熱點數(shù)據(jù)聚合結(jié)果,確定各對著色器組合對實際畫面渲染過程的性能消耗貢獻度;
87、第十七單元,用于將性能消耗貢獻度高于預(yù)設(shè)閾值的著色器組合確定為實際畫面渲染過程中的性能熱點對象。
88、在一些實施例中,所述方法還包括:
89、第七模塊,用于針對所述性能熱點對象執(zhí)行優(yōu)化處理;其中,所述優(yōu)化處理包括停止著色器執(zhí)行動作、重啟著色器執(zhí)行動作以及重新配置渲染管線的待執(zhí)行著色器中至少一種。
90、本發(fā)明實施例的另一方面還提供了一種電子設(shè)備,包括處理器以及存儲器;
91、所述存儲器用于存儲程序;
92、所述處理器執(zhí)行所述程序?qū)崿F(xiàn)如前面所述的方法。
93、本發(fā)明實施例的另一方面還提供了一種計算機可讀存儲介質(zhì),所述存儲介質(zhì)存儲有程序,所述程序被處理器執(zhí)行實現(xiàn)如前面所述的方法。
94、本發(fā)明實施例的另一方面還提供了一種計算機程序產(chǎn)品,包括計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)如前面所述的方法。
95、本發(fā)明實施例至少包括以下有益效果:本發(fā)明提供一種基于渲染性能數(shù)據(jù)的熱點分析方法、裝置及電子設(shè)備,該方案首先獲取智能終端的功耗信息,基于所述功耗信息確定功耗大于預(yù)設(shè)閾值的目標畫面;接著從所述目標畫面提取至少一個畫面幀的渲染信息;其中,所述渲染信息包括實際畫面渲染過程中使用的第一著色器集合以及著色器的渲染數(shù)據(jù);并根據(jù)所述渲染信息還原渲染管線的狀態(tài)信息,并得到所述渲染管線中還原的第二著色器集合;然后從所述第一著色器集合和第二著色器集合中確定相互匹配的著色器組合;以及根據(jù)所述第一著色器集合的著色器的渲染數(shù)據(jù),將多個所述著色器組合在對應(yīng)畫面幀中的渲染發(fā)熱信息進行匯總排序,得到熱點數(shù)據(jù)聚合結(jié)果;最后,根據(jù)所述熱點數(shù)據(jù)聚合結(jié)果確定實際畫面渲染過程中的性能熱點對象。本發(fā)明能夠針對智能終端在執(zhí)行高渲染處理的場景時,通過對功耗信息的分析,以及還原管線渲染過程的著色器狀態(tài),準確找到性能消耗最大的發(fā)熱熱點,相較于現(xiàn)有技術(shù)的模塊對比測試方法,本方案的熱力粒度小且準確度高,可以準確定位渲染性能數(shù)據(jù)的熱點,提升用戶使用體驗。