[發(fā)明專利]線程延遲的分析方法及裝置有效
| 申請?zhí)枺?/td> | 201510694547.0 | 申請日: | 2015-10-22 |
| 公開(公告)號: | CN105760294B | 公開(公告)日: | 2018-03-30 |
| 發(fā)明(設(shè)計)人: | 林毅軒;黃信憲 | 申請(專利權(quán))人: | 聯(lián)發(fā)科技股份有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 深圳市威世博知識產(chǎn)權(quán)代理事務(wù)所(普通合伙)44280 | 代理人: | 何青瓦 |
| 地址: | 中國臺灣新竹科*** | 國省代碼: | 臺灣;71 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 線程 延遲 分析 方法 裝置 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及線程延遲的分析,尤其涉及一種線程延遲的分析方法及裝置,該方法及裝置可用于評估由線程的搶占(preemption)和關(guān)于該線程的硬件的功率管理策略引起的線程延遲。
背景技術(shù)
在計算機編程中,線程(thread)是CPU(Central Process Unit,中央處理單元)利用率的最小執(zhí)行單元。可以劃分程序為多個線程。每個線程可以獨立于相同程序中的其他線程而執(zhí)行。在多處理器或多核心處理器的機器上,可以同時執(zhí)行程序的幾個線程。因此,線程模型是一種可以提高程序執(zhí)行效率(由于程序代碼并行執(zhí)行)的靈活的組織機制。
由于線程需要訪問機器上的有限的資源(例如:CPU、存儲器和其他硬件),因此,操作系統(tǒng)或者機器的核心需要安排每個線程。當(dāng)喚醒線程時,然后線程將被放置進(jìn)運行隊列中。放置于運行隊列中的線程將基于他們各自的優(yōu)先級(該優(yōu)先級由操作系統(tǒng)給定)等待訪問資源。
但是,由于各種各樣的因素,線程可能意外地急需訪問特定資源。因此,線程可能長時間待在運行隊列中,而僅得到相對短時間的資源訪問權(quán)。這就是線程延遲,由于現(xiàn)代計算機通常具有流水線結(jié)構(gòu),因此該線程延遲可能引起機器的性能瓶頸。一個線程的延遲可能不利地影響另一線程的執(zhí)行。鑒于此,為了得到更好的系統(tǒng)性能,需要分析什么因素引起了線程延遲。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明實施例提供了一種線程延遲的分析方法及裝置,可以分析線程延遲的原因,從而為系統(tǒng)性能優(yōu)化提供依據(jù)。
本發(fā)明提提供了一種線程延遲的分析方法,包括:
確定感興趣的線程;
計算所述感興趣的線程停留在運行隊列中的時間期間之和,以確定該線程在運行隊列中的時長;
計算所述感興趣的線程被其他線程搶占的時間期間之和,以確定線程搶占時長;
根據(jù)所述線程搶占時長和所述線程在運行隊列中的時長,評估所述感興趣的線程的線程延遲。
其中,所述計算所述感興趣的線程停留在運行隊列中的時間期間之和,以確定該線程在運行隊列中的時長的步驟包括:
確定所述感興趣的線程停留在運行隊列中的時間期間;
其中,所述確定所述感興趣的線程停留在運行隊列中的時間期間,包括:
根據(jù)喚醒所述感興趣的線程的時間或者放置所述感興趣的線程進(jìn)所述運行隊列中的時間,確定開始點;
根據(jù)使所述感興趣的線程進(jìn)入休眠的時間或者將所述感興趣的線程從所述運行隊列中移除的時間,確定結(jié)束點;
計算所述開始點和結(jié)束點之間的時間差,以確定所述時間期間。
其中,確定所述開始點的步驟包括:
參考日志文件中記錄的關(guān)于喚醒所述感興趣的線程的多個事件之一的時間戳,來確定所述開始點;
或者,參考日志文件中記錄的將所述感興趣的線程放進(jìn)所述運行隊列的多個事件之一的時間戳,來確定所述開始點。
其中,確定所述結(jié)束點的步驟包括:
參考日志文件中記錄的關(guān)于使所述感興趣的線程進(jìn)入休眠的多個事件之一的時間戳,來確定所述結(jié)束點;
或者,參考日志文件中記錄的將所述感興趣的線程從所述運行隊列中移除的多個事件之一的時間戳,來確定所述結(jié)束點。
其中,所述計算所述感興趣的線程被其他線程搶占的時間期間之和,以確定線程搶占時長的步驟包括:
確定所述感興趣的線程被其他線程搶占的時間期間;
其中,所述確定所述感興趣的線程被其他線程搶占的時間期間,包括:
根據(jù)所述感興趣的線程在執(zhí)行上被搶占的開始時間,確定開始點;
根據(jù)所述感興趣的線程從被搶占中恢復(fù)執(zhí)行的時間,確定結(jié)束點;
計算所述開始點和結(jié)束點之間的時間差,以確定所述感興趣的線程被搶占的時間期間。
其中,所述確定開始點包括:
參考日志文件中記錄的關(guān)于所述感興趣的線程在執(zhí)行上被搶占的多個事件之一的時間戳,以確定所述開始點。
其中,所述確定結(jié)束點包括:
參考日志文件中記錄的關(guān)于所述感興趣的線程從被搶占中恢復(fù)執(zhí)行的多個事件之一的時間戳,以確定所述結(jié)束點。
其中,所述感興趣的線程在多核處理芯片上執(zhí)行,所述方法進(jìn)一步包括:
根據(jù)所述多核處理芯片的功率管理,確定與所述感興趣的線程的延遲相關(guān)的功率管理。
其中,確定與所述感興趣的線程的延遲相關(guān)的功率管理的步驟包括:
確定多核處理芯片具有的核心數(shù);以及
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于聯(lián)發(fā)科技股份有限公司,未經(jīng)聯(lián)發(fā)科技股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201510694547.0/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 在多線程處理器中用于高速線程間中斷的方法和設(shè)備
- 一種多線程系統(tǒng)中實現(xiàn)實時監(jiān)控各線程狀態(tài)的方法
- 移動終端系統(tǒng)線程池實現(xiàn)方法及裝置
- 一種基于策略模式的信號發(fā)生器多線程管理方法
- 多線程并發(fā)處理方法和多線程并發(fā)處理系統(tǒng)
- 分布式系統(tǒng)的線程管理方法和裝置
- 線程執(zhí)行方法、裝置、終端及存儲介質(zhì)
- 線程監(jiān)控方法、裝置、電子設(shè)備及計算機可讀存儲介質(zhì)
- 一種多核系統(tǒng)中多線程調(diào)度方法、裝置及設(shè)備
- 線程間通信方法、裝置、電子設(shè)備及存儲介質(zhì)





