1.一種計(jì)算機(jī)運(yùn)行監(jiān)測(cè)方法,其特征在于,包括步驟:
終端通過(guò)子線程定期獲取主線程代碼堆棧信息和CPU運(yùn)行負(fù)載信息;
在主線程中執(zhí)行指令消息時(shí),在執(zhí)行前后分別標(biāo)記時(shí)間點(diǎn),并根據(jù)標(biāo)記的時(shí)間點(diǎn)計(jì)算所述指令消息對(duì)應(yīng)的代碼堆棧的執(zhí)行時(shí)長(zhǎng);
當(dāng)所述執(zhí)行時(shí)長(zhǎng)大于時(shí)間閾值時(shí),查找子線程在所述第一時(shí)間點(diǎn)至第二時(shí)間點(diǎn)之間獲取的代碼堆棧信息和CPU運(yùn)行負(fù)載信息,并錄入日志文件中;
將所述日志文件上報(bào)至服務(wù)器。
2.如權(quán)利要求1所述的計(jì)算機(jī)運(yùn)行監(jiān)測(cè)方法,其特征在于,所述在主線程中執(zhí)行指令消息時(shí),在執(zhí)行前后分別標(biāo)記時(shí)間點(diǎn),并根據(jù)標(biāo)記的時(shí)間點(diǎn)計(jì)算所述指令消息對(duì)應(yīng)的代碼堆棧的執(zhí)行時(shí)長(zhǎng)的步驟包括:
在主線程中,當(dāng)指令消息到達(dá)時(shí),在日志文件中標(biāo)記第一時(shí)間點(diǎn);
在執(zhí)行完成所述指令消息對(duì)應(yīng)的代碼堆棧后,在日志文件中標(biāo)記第二時(shí)間點(diǎn);
根據(jù)所述第一時(shí)間點(diǎn)和第二時(shí)間點(diǎn)計(jì)算時(shí)長(zhǎng),作為所述指令消息對(duì)應(yīng)的代碼堆棧的執(zhí)行時(shí)長(zhǎng)。
3.如權(quán)利要求1或2所述的計(jì)算機(jī)運(yùn)行監(jiān)測(cè)方法,其特征在于,所述當(dāng)執(zhí)行時(shí)長(zhǎng)大于時(shí)間閾值時(shí),查找子線程在所述第一時(shí)間點(diǎn)至第二時(shí)間點(diǎn)之間獲取的代碼堆棧信息和CPU運(yùn)行負(fù)載信息,并錄入日志文件中的步驟之后還包括:
當(dāng)所述日志文件中的代碼堆棧信息在所述日志文件中重復(fù)出現(xiàn),且重復(fù)次數(shù)大于次數(shù)閾值時(shí),將重復(fù)次數(shù)大于次數(shù)閾值的代碼堆棧信息確定為造成運(yùn)行響應(yīng)遲滯的代碼來(lái)源。
4.一種計(jì)算機(jī)運(yùn)行監(jiān)測(cè)方法,其特征在于,包括步驟:
終端通過(guò)子線程定期獲取主線程代碼堆棧信息和CPU運(yùn)行負(fù)載信息;
所述終端在主線程中執(zhí)行指令消息時(shí),在執(zhí)行前后分別標(biāo)記時(shí)間點(diǎn),并 根據(jù)標(biāo)記的時(shí)間點(diǎn)計(jì)算所述指令消息對(duì)應(yīng)的代碼堆棧的執(zhí)行時(shí)長(zhǎng);
當(dāng)所述執(zhí)行時(shí)長(zhǎng)大于時(shí)間閾值時(shí),所述終端查找子線程在所述第一時(shí)間點(diǎn)至第二時(shí)間點(diǎn)之間獲取的代碼堆棧信息和CPU運(yùn)行負(fù)載信息,并錄入日志文件中,上報(bào)至服務(wù)器;
所述服務(wù)器接收各終端上報(bào)的日志文件,并統(tǒng)計(jì)各日志文件中的每一個(gè)代碼堆棧信息出現(xiàn)的次數(shù);
當(dāng)所述代碼堆棧信息出現(xiàn)的次數(shù)大于次數(shù)閾值時(shí),所述服務(wù)器將次數(shù)大于次數(shù)閾值的代碼堆棧信息確定為造成運(yùn)行響應(yīng)遲滯的代碼來(lái)源,并返回統(tǒng)計(jì)結(jié)果給所述終端。
5.如權(quán)利要求4所述的計(jì)算機(jī)運(yùn)行監(jiān)測(cè)方法,其特征在于,所述終端在主線程中執(zhí)行指令消息時(shí),在執(zhí)行前后分別標(biāo)記時(shí)間點(diǎn),并根據(jù)標(biāo)記的時(shí)間點(diǎn)計(jì)算所述指令消息對(duì)應(yīng)的代碼堆棧的執(zhí)行時(shí)長(zhǎng)的步驟包括:
在主線程中,當(dāng)指令消息到達(dá)時(shí),所述終端在日志文件中標(biāo)記第一時(shí)間點(diǎn);
所述終端在執(zhí)行完成所述指令消息對(duì)應(yīng)的代碼堆棧后,在日志文件中標(biāo)記第二時(shí)間點(diǎn);
所述終端根據(jù)所述第一時(shí)間點(diǎn)和第二時(shí)間點(diǎn)計(jì)算時(shí)長(zhǎng),作為所述指令消息對(duì)應(yīng)的代碼堆棧的執(zhí)行時(shí)長(zhǎng)。
6.如權(quán)利要求4或5所述的計(jì)算機(jī)運(yùn)行監(jiān)測(cè)方法,其特征在于,所述當(dāng)執(zhí)行時(shí)長(zhǎng)大于時(shí)間閾值時(shí),所述終端查找子線程在所述第一時(shí)間點(diǎn)至第二時(shí)間點(diǎn)之間獲取的代碼堆棧信息和CPU運(yùn)行負(fù)載信息,并錄入日志文件中的步驟之后還包括:
當(dāng)所述日志文件中的代碼堆棧信息在所述日志文件中重復(fù)出現(xiàn),且重復(fù)次數(shù)大于次數(shù)閾值時(shí),所述終端將重復(fù)次數(shù)大于次數(shù)閾值的代碼堆棧信息確定為造成運(yùn)行響應(yīng)遲滯的代碼來(lái)源。
7.一種計(jì)算機(jī)運(yùn)行監(jiān)測(cè)裝置,其特征在于,包括:
子線程獲取模塊,用于通過(guò)子線程定期獲取主線程代碼堆棧信息和CPU 運(yùn)行負(fù)載信息;
時(shí)間標(biāo)記模塊,用于在主線程中執(zhí)行指令消息時(shí),在執(zhí)行前后分別標(biāo)記時(shí)間點(diǎn);
時(shí)長(zhǎng)計(jì)算模塊,用于根據(jù)標(biāo)記的時(shí)間點(diǎn)計(jì)算所述指令消息對(duì)應(yīng)的代碼堆棧的執(zhí)行時(shí)長(zhǎng);
比較模塊,用于判斷所述執(zhí)行時(shí)長(zhǎng)是否大于時(shí)間閾值;
子線程查找模塊,用于當(dāng)所述執(zhí)行時(shí)長(zhǎng)大于時(shí)間閾值時(shí),查找子線程在所述第一時(shí)間點(diǎn)至第二時(shí)間點(diǎn)之間獲取的代碼堆棧信息和CPU運(yùn)行負(fù)載信息,并錄入日志文件中;
上報(bào)模塊,用于將所述日志文件上報(bào)至服務(wù)器。
8.如權(quán)利要求7所述的計(jì)算機(jī)運(yùn)行監(jiān)測(cè)裝置,其特征在于,所述時(shí)間標(biāo)記模塊還用于,在主線程中,當(dāng)指令消息到達(dá)時(shí),在日志文件中標(biāo)記第一時(shí)間點(diǎn);在執(zhí)行完成所述指令消息對(duì)應(yīng)的代碼堆棧后,在日志文件中標(biāo)記第二時(shí)間點(diǎn);
所述時(shí)長(zhǎng)計(jì)算模塊還用于,根據(jù)所述第一時(shí)間點(diǎn)和第二時(shí)間點(diǎn)計(jì)算時(shí)長(zhǎng),作為所述指令消息對(duì)應(yīng)的代碼堆棧的執(zhí)行時(shí)長(zhǎng)。
9.如權(quán)利要求7或8所述的計(jì)算機(jī)運(yùn)行監(jiān)測(cè)裝置,其特征在于,還包括來(lái)源確定模塊,用于當(dāng)所述日志文件中的代碼堆棧信息在所述日志文件中重復(fù)出現(xiàn),且重復(fù)次數(shù)大于次數(shù)閾值時(shí),將重復(fù)次數(shù)大于次數(shù)閾值的代碼堆棧信息確定為造成運(yùn)行響應(yīng)遲滯的代碼來(lái)源。
10.一種計(jì)算機(jī)運(yùn)行監(jiān)測(cè)系統(tǒng),其特征在于,包括終端和服務(wù)器:
所述終端用于:
通過(guò)子線程定期獲取主線程代碼堆棧信息和CPU運(yùn)行負(fù)載信息;
在主線程中執(zhí)行指令消息時(shí),在執(zhí)行前后分別標(biāo)記時(shí)間點(diǎn),并根據(jù)標(biāo)記的時(shí)間點(diǎn)計(jì)算所述指令消息對(duì)應(yīng)的代碼堆棧的執(zhí)行時(shí)長(zhǎng);
當(dāng)所述執(zhí)行時(shí)長(zhǎng)大于時(shí)間閾值時(shí),查找子線程在所述第一時(shí)間點(diǎn)至第二時(shí)間點(diǎn)之間獲取的代碼堆棧信息和CPU運(yùn)行負(fù)載信息,并錄入日志文件中, 上報(bào)至服務(wù)器;
所述服務(wù)器用于:
接收各終端上報(bào)的日志文件,并統(tǒng)計(jì)各日志文件中的每一個(gè)代碼堆棧信息出現(xiàn)的次數(shù);
當(dāng)所述代碼堆棧信息出現(xiàn)的次數(shù)大于次數(shù)閾值時(shí),將次數(shù)大于次數(shù)閾值的代碼堆棧信息確定為造成運(yùn)行響應(yīng)遲滯的代碼來(lái)源,并返回統(tǒng)計(jì)結(jié)果給所述終端。
11.如權(quán)利要求10所述的計(jì)算機(jī)運(yùn)行監(jiān)測(cè)系統(tǒng),其特征在于,所述終端還用于:
在主線程中,當(dāng)指令消息到達(dá)時(shí),在日志文件中標(biāo)記第一時(shí)間點(diǎn);
在執(zhí)行完成所述指令消息對(duì)應(yīng)的代碼堆棧后,在日志文件中標(biāo)記第二時(shí)間點(diǎn);
根據(jù)所述第一時(shí)間點(diǎn)和第二時(shí)間點(diǎn)計(jì)算時(shí)長(zhǎng),作為所述指令消息對(duì)應(yīng)的代碼堆棧的執(zhí)行時(shí)長(zhǎng)。
12.如權(quán)利要求10或11所述的計(jì)算機(jī)運(yùn)行監(jiān)測(cè)系統(tǒng),其特征在于,所述終端還用于:
當(dāng)所述日志文件中的代碼堆棧信息在所述日志文件中重復(fù)出現(xiàn),且重復(fù)次數(shù)大于次數(shù)閾值時(shí),將重復(fù)次數(shù)大于次數(shù)閾值的代碼堆棧信息確定為造成運(yùn)行響應(yīng)遲滯的代碼來(lái)源。