本發(fā)明涉及系統(tǒng)優(yōu)化,特別涉及一種線(xiàn)程優(yōu)化方法、裝置、電子設(shè)備、存儲(chǔ)介質(zhì)。
背景技術(shù):
1、現(xiàn)有技術(shù)中的線(xiàn)程監(jiān)測(cè)方式多為關(guān)注超時(shí)的時(shí)間點(diǎn),根據(jù)時(shí)間點(diǎn)對(duì)目標(biāo)線(xiàn)程進(jìn)行捕獲異常,將當(dāng)前目標(biāo)線(xiàn)程的狀態(tài)和運(yùn)行堆棧進(jìn)行抓取,作為應(yīng)用程序無(wú)響應(yīng)的根本原因,導(dǎo)致對(duì)目標(biāo)線(xiàn)程進(jìn)行監(jiān)測(cè)時(shí)的錯(cuò)誤率較高,無(wú)法對(duì)應(yīng)用程序無(wú)響應(yīng)進(jìn)行有效定位。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明旨在至少解決現(xiàn)有技術(shù)中存在的技術(shù)問(wèn)題之一。為此,本發(fā)明提出一種線(xiàn)程優(yōu)化方法、裝置、電子設(shè)備、存儲(chǔ)介質(zhì),能夠?qū)?yīng)用程序無(wú)響應(yīng)進(jìn)行有效定位,提高目標(biāo)線(xiàn)程監(jiān)測(cè)時(shí)的容錯(cuò)率。
2、第一方面,本發(fā)明實(shí)施例提供了一種線(xiàn)程優(yōu)化方法,包括:
3、獲取任務(wù)進(jìn)程的程序無(wú)響應(yīng)信息和任務(wù)類(lèi)型,拆分記錄所述程序無(wú)響應(yīng)信息的通路耗時(shí),得到多個(gè)輸入數(shù)據(jù)信息;
4、根據(jù)多個(gè)所述輸入數(shù)據(jù)信息和所述任務(wù)類(lèi)型動(dòng)態(tài)計(jì)算主線(xiàn)程任務(wù)中滿(mǎn)足所述程序無(wú)響應(yīng)信息的執(zhí)行閾值,對(duì)所述程序無(wú)響應(yīng)信息進(jìn)行匯總,以確定所述程序無(wú)響應(yīng)信息的運(yùn)行軌跡,其中,所述執(zhí)行閾值為滿(mǎn)足程序無(wú)響應(yīng)信息的單任務(wù)執(zhí)行時(shí)間閾值,所述主線(xiàn)程任務(wù)設(shè)置有多個(gè)并行任務(wù);
5、記錄所述程序無(wú)響應(yīng)信息生效期間多個(gè)所述并行任務(wù)的執(zhí)行耗時(shí),當(dāng)所述執(zhí)行耗時(shí)處于所述執(zhí)行閾值外時(shí),獲取任務(wù)超時(shí)標(biāo)志,根據(jù)所述任務(wù)超時(shí)標(biāo)志將處于所述執(zhí)行閾值外的所述并行任務(wù)標(biāo)記為超時(shí)任務(wù);
6、根據(jù)所述執(zhí)行閾值進(jìn)行延遲等待,當(dāng)所述通路耗時(shí)處于所述執(zhí)行閾值內(nèi)時(shí),取消所述主線(xiàn)程任務(wù),當(dāng)所述通路耗時(shí)未處于所述執(zhí)行閾值內(nèi)時(shí),記錄所述主線(xiàn)程任務(wù)的任務(wù)信息和第一堆棧信息以及所述超時(shí)任務(wù)的任務(wù)完成時(shí)間和第二堆棧信息。
7、在本發(fā)明的一些實(shí)施例中,所述拆分記錄所述程序無(wú)響應(yīng)信息的通路耗時(shí),包括:
8、記錄所述程序無(wú)響應(yīng)信息的第一時(shí)間戳和剩余處理時(shí)間;
9、根據(jù)所述輸入時(shí)間戳、所述任務(wù)類(lèi)型和所述剩余處理時(shí)間獲取當(dāng)前隊(duì)列中的所述程序無(wú)響應(yīng)信息的插入位置和多個(gè)待處理事項(xiàng);
10、計(jì)算所述程序無(wú)響應(yīng)信息的耗時(shí)閾值,并根據(jù)所述耗時(shí)閾值和所述剩余處理時(shí)間監(jiān)測(cè)所有所述待處理事項(xiàng);
11、抓取所有超出所述耗時(shí)閾值的所述待處理事項(xiàng)的處理信息,并保存所述處理信息的所有執(zhí)行記錄。
12、在本發(fā)明的一些實(shí)施例中,所述根據(jù)多個(gè)所述輸入數(shù)據(jù)信息動(dòng)態(tài)計(jì)算主線(xiàn)程任務(wù)中滿(mǎn)足所述程序無(wú)響應(yīng)信息的執(zhí)行閾值,包括:
13、根據(jù)所述輸入數(shù)據(jù)信息和所述任務(wù)類(lèi)型確定所述程序無(wú)響應(yīng)信息的捕獲任務(wù);
14、根據(jù)所述捕獲任務(wù)和所述執(zhí)行閾值確定第一干預(yù)任務(wù)和第二干預(yù)任務(wù);
15、所述第一干預(yù)任務(wù)根據(jù)預(yù)設(shè)的第一延時(shí)時(shí)間對(duì)當(dāng)前運(yùn)行的所述主線(xiàn)程任務(wù)進(jìn)行任務(wù)優(yōu)先調(diào)控;
16、所述第二干預(yù)任務(wù)根據(jù)預(yù)設(shè)的第二延時(shí)時(shí)間對(duì)當(dāng)前運(yùn)行的所述主線(xiàn)程任務(wù)進(jìn)行調(diào)度優(yōu)先調(diào)控。
17、在本發(fā)明的一些實(shí)施例中,所述根據(jù)多個(gè)所述輸入數(shù)據(jù)信息和所述任務(wù)類(lèi)型動(dòng)態(tài)計(jì)算主線(xiàn)程任務(wù)中滿(mǎn)足所述程序無(wú)響應(yīng)信息的執(zhí)行閾值,包括:
18、獲取所述程序無(wú)響應(yīng)信息的開(kāi)始時(shí)間戳和完成時(shí)間戳;
19、根據(jù)所述開(kāi)始時(shí)間戳、所述完成時(shí)間戳和所述任務(wù)類(lèi)型,確定所述程序無(wú)響應(yīng)信息的任務(wù)時(shí)間線(xiàn),根據(jù)所述任務(wù)時(shí)間線(xiàn)調(diào)整所述執(zhí)行閾值。
20、在本發(fā)明的一些實(shí)施例中,所述確定所述程序無(wú)響應(yīng)信息的任務(wù)時(shí)間線(xiàn)后,所述方法還包括:
21、根據(jù)所述任務(wù)類(lèi)型確定所述程序無(wú)響應(yīng)信息的第一更新信息;
22、根據(jù)所述開(kāi)始時(shí)間戳、所述完成時(shí)間戳和所述第一更新信息計(jì)算所述程序無(wú)響應(yīng)信息的棧頂緩存值;
23、根據(jù)所述任務(wù)類(lèi)型確認(rèn)所述程序無(wú)響應(yīng)信息的任務(wù)完成類(lèi)型,根據(jù)所述任務(wù)完成類(lèi)型更新所述棧頂緩存值,根據(jù)所述完成時(shí)間戳確定和所述任務(wù)類(lèi)型確定結(jié)束執(zhí)行任務(wù);
24、根據(jù)所述結(jié)束執(zhí)行任務(wù)將所述棧頂緩存值重置為零,確定所述程序無(wú)響應(yīng)信息的第二更新信息;
25、獲取所述程序無(wú)響應(yīng)信息在所述任務(wù)類(lèi)型不同時(shí)的排序值,根據(jù)所述排序值和所述棧頂緩存值計(jì)算所述程序無(wú)響應(yīng)信息的標(biāo)記時(shí)間閾值,其中,所述標(biāo)記時(shí)間閾值包括多個(gè)完成時(shí)間戳;
26、當(dāng)所述標(biāo)記時(shí)間戳發(fā)生變化時(shí),將多個(gè)所述完成時(shí)間戳中的最小值作為當(dāng)前所述程序無(wú)響應(yīng)信息的所述執(zhí)行閾值。
27、在本發(fā)明的一些實(shí)施例中,所述記錄所述程序無(wú)響應(yīng)信息生效期間多個(gè)所述并行任務(wù)的執(zhí)行耗時(shí),包括:
28、獲取所述主線(xiàn)程任務(wù)啟動(dòng)時(shí)的任務(wù)開(kāi)始信號(hào);
29、根據(jù)所述任務(wù)開(kāi)始信號(hào)喚醒捕獲線(xiàn)程,確定所述主線(xiàn)程任務(wù)的隊(duì)列中的待處理事務(wù)和所述程序無(wú)響應(yīng)信息的插入位置;
30、所述捕獲線(xiàn)程根據(jù)所述插入位置計(jì)算所述隊(duì)列中待處理事務(wù)的所述執(zhí)行耗時(shí)。
31、在本發(fā)明的一些實(shí)施例中,所述拆分記錄所述程序無(wú)響應(yīng)信息的通路耗時(shí),得到多個(gè)輸入數(shù)據(jù)信息,包括
32、獲取所述程序無(wú)響應(yīng)信息的隊(duì)列加入時(shí)間點(diǎn)、開(kāi)始執(zhí)行時(shí)間點(diǎn)和執(zhí)行完成時(shí)間點(diǎn);
33、截取所述加入時(shí)間點(diǎn)、所述開(kāi)始執(zhí)行時(shí)間點(diǎn)和所述執(zhí)行完成時(shí)間點(diǎn)的時(shí)間值,根據(jù)所述時(shí)間值計(jì)算所述程序無(wú)響應(yīng)信息的所述通路耗時(shí);
34、根據(jù)所述通路耗時(shí)獲取所述程序無(wú)響應(yīng)信息的運(yùn)行軌跡、耗時(shí)分布和剩余時(shí)間。
35、第二方面,本發(fā)明實(shí)施例提供了一種線(xiàn)程優(yōu)化裝置,包括少一個(gè)控制處理器和用于與所述至少一個(gè)控制處理器通信連接的存儲(chǔ)器;所述存儲(chǔ)器存儲(chǔ)有可被所述至少一個(gè)控制處理器執(zhí)行的指令,所述指令被所述至少一個(gè)控制處理器執(zhí)行,以使所述至少一個(gè)控制處理器能夠執(zhí)行如上述第一方面所述的線(xiàn)程優(yōu)化方法。
36、第三方面,本發(fā)明實(shí)施例提供了一種電子設(shè)備,包括有如上述第二方面所述的線(xiàn)程優(yōu)化裝置。
37、第四方面,本發(fā)明實(shí)施例提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),存儲(chǔ)有計(jì)算機(jī)可執(zhí)行指令,所述計(jì)算機(jī)可執(zhí)行指令用于執(zhí)行如上述第一方面所述的線(xiàn)程優(yōu)化方法。
38、根據(jù)本發(fā)明實(shí)施例的線(xiàn)程優(yōu)化方法,至少具有如下有益效果:
39、獲取任務(wù)進(jìn)程的程序無(wú)響應(yīng)信息和任務(wù)類(lèi)型,拆分記錄程序無(wú)響應(yīng)信息的通路耗時(shí),得到多個(gè)輸入數(shù)據(jù)信息;根據(jù)多個(gè)輸入數(shù)據(jù)信息和任務(wù)類(lèi)型動(dòng)態(tài)計(jì)算主線(xiàn)程任務(wù)中滿(mǎn)足程序無(wú)響應(yīng)信息的執(zhí)行閾值,對(duì)程序無(wú)響應(yīng)信息進(jìn)行匯總,以確定程序無(wú)響應(yīng)信息的運(yùn)行軌跡,其中,執(zhí)行閾值為滿(mǎn)足程序無(wú)響應(yīng)信息的單任務(wù)執(zhí)行時(shí)間閾值,主線(xiàn)程任務(wù)設(shè)置有多個(gè)并行任務(wù);記錄程序無(wú)響應(yīng)信息生效期間多個(gè)并行任務(wù)的執(zhí)行耗時(shí),當(dāng)執(zhí)行耗時(shí)處于執(zhí)行閾值外時(shí),獲取任務(wù)超時(shí)標(biāo)志,根據(jù)任務(wù)超時(shí)標(biāo)志將處于執(zhí)行閾值外的并行任務(wù)標(biāo)記為超時(shí)任務(wù);根據(jù)執(zhí)行閾值進(jìn)行延遲等待,當(dāng)通路耗時(shí)處于執(zhí)行閾值內(nèi)時(shí),取消主線(xiàn)程任務(wù),當(dāng)通路耗時(shí)未處于執(zhí)行閾值內(nèi)時(shí),記錄主線(xiàn)程任務(wù)的任務(wù)信息和第一堆棧信息以及超時(shí)任務(wù)的任務(wù)完成時(shí)間和第二堆棧信息。根據(jù)本實(shí)施例的技術(shù)方案,能夠結(jié)合當(dāng)前主線(xiàn)程的運(yùn)行情況動(dòng)態(tài)計(jì)算出單個(gè)主線(xiàn)程任務(wù)的耗時(shí)閾值,能夠?qū)?yīng)用程序無(wú)響應(yīng)進(jìn)行有效定位,提高目標(biāo)線(xiàn)程監(jiān)測(cè)時(shí)的容錯(cuò)率。
1.一種線(xiàn)程優(yōu)化方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的線(xiàn)程優(yōu)化方法,其特征在于,所述拆分記錄所述程序無(wú)響應(yīng)信息的通路耗時(shí),包括:
3.根據(jù)權(quán)利要求1所述的線(xiàn)程優(yōu)化方法,其特征在于,所述根據(jù)多個(gè)所述輸入數(shù)據(jù)信息動(dòng)態(tài)計(jì)算主線(xiàn)程任務(wù)中滿(mǎn)足所述程序無(wú)響應(yīng)信息的執(zhí)行閾值,包括:
4.根據(jù)權(quán)利要求1所述的線(xiàn)程優(yōu)化方法,其特征在于,所述根據(jù)多個(gè)所述輸入數(shù)據(jù)信息和所述任務(wù)類(lèi)型動(dòng)態(tài)計(jì)算主線(xiàn)程任務(wù)中滿(mǎn)足所述程序無(wú)響應(yīng)信息的執(zhí)行閾值,包括:
5.根據(jù)權(quán)利要求4所述的線(xiàn)程優(yōu)化方法,其特征在于,所述確定所述程序無(wú)響應(yīng)信息的任務(wù)時(shí)間線(xiàn)后,所述方法還包括:
6.根據(jù)權(quán)利要求1所述的線(xiàn)程優(yōu)化方法,其特征在于,所述記錄所述程序無(wú)響應(yīng)信息生效期間多個(gè)所述并行任務(wù)的執(zhí)行耗時(shí),包括:
7.根據(jù)權(quán)利要求1所述的線(xiàn)程優(yōu)化方法,其特征在于,所述拆分記錄所述程序無(wú)響應(yīng)信息的通路耗時(shí),得到多個(gè)輸入數(shù)據(jù)信息,包括
8.一種線(xiàn)程優(yōu)化裝置,其特征在于,包括至少一個(gè)控制處理器和用于與所述至少一個(gè)控制處理器通信連接的存儲(chǔ)器;所述存儲(chǔ)器存儲(chǔ)有可被所述至少一個(gè)控制處理器執(zhí)行的指令,所述指令被所述至少一個(gè)控制處理器執(zhí)行,以使所述至少一個(gè)控制處理器能夠執(zhí)行如權(quán)利要求1至7任一項(xiàng)所述的線(xiàn)程優(yōu)化方法。
9.一種電子設(shè)備,其特征在于,包括權(quán)利要求8所述的線(xiàn)程優(yōu)化裝置。
10.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)可執(zhí)行指令,所述計(jì)算機(jī)可執(zhí)行指令用于使計(jì)算機(jī)執(zhí)行如權(quán)利要求1至7任一項(xiàng)所述的線(xiàn)程優(yōu)化方法。