久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

    1. <style id="76ofp"></style>

      <style id="76ofp"></style>
      <rt id="76ofp"></rt>
      <form id="76ofp"><optgroup id="76ofp"></optgroup></form>
      1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

        手機(jī)站
        千鋒教育

        千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

        千鋒教育

        掃一掃進(jìn)入千鋒手機(jī)站

        領(lǐng)取全套視頻
        千鋒教育

        關(guān)注千鋒學(xué)習(xí)站小程序
        隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

        當(dāng)前位置:首頁  >  技術(shù)干貨  > Linux下有什么工具可以分析出一個(gè)程序的運(yùn)算時(shí)間分布?

        Linux下有什么工具可以分析出一個(gè)程序的運(yùn)算時(shí)間分布?

        來源:千鋒教育
        發(fā)布人:xqq
        時(shí)間: 2023-10-13 05:08:32 1697144912

        一、Linux下有什么工具可以分析出一個(gè)程序的運(yùn)算時(shí)間分布

        最近在使用?time?命令時(shí),無意間發(fā)現(xiàn)了一些隱藏的小秘密和強(qiáng)大功能,今天分享給大家。

        time在Linux下是比較常用的命令,可以幫助我們方便的計(jì)算程序的運(yùn)行時(shí)間,對比采用不同方案時(shí)程序的運(yùn)行性能??此坪唵蔚拿?,其實(shí)蘊(yùn)藏著很多細(xì)節(jié)和技巧,來跟著肖邦一起學(xué)習(xí)吧。

        先來看下最基礎(chǔ)的用法,也可能是大家最常見的用法了

        root@chopin:~$?time?find?.?-name?“chopin.txt”……real???0m0.174suser???0m0.084ssys????0m0.084s

        可以很清楚看到,find?命令執(zhí)行的時(shí)間為?0.174s,是不是很簡單,很方便呢

        不過,time?命令輸出了三個(gè)參數(shù),我們只用到了名列前茅個(gè)參數(shù),其它兩個(gè)參數(shù)代表什么含義呢?

        這里我來解釋一下:

        real:表示的是墻上時(shí)間,說白了,其實(shí)就是從程序運(yùn)行開始到結(jié)束所經(jīng)歷的時(shí)間;user:表示程序運(yùn)行期間,cpu 在用戶態(tài)所花費(fèi)的時(shí)間;sys:表示程序運(yùn)行期間,cpu 在內(nèi)核態(tài)所花費(fèi)的時(shí)間;

        細(xì)心的讀者會(huì)發(fā)現(xiàn),上述案例中的?user?+?sys?不等于?real,這是怎么回事呢?

        其實(shí)上邊解釋的?user?和?sys,是 cpu 執(zhí)行指令所消耗的時(shí)間,并不包含:進(jìn)程阻塞 IO、調(diào)度排隊(duì),這些非 cpu 運(yùn)行時(shí)間。

        案例中?find?執(zhí)行查找文件過程中,會(huì)有磁盤 IO 讀取,這時(shí) cpu 會(huì)被釋放出來干別的事情,這些 IO 消耗的時(shí)間,是不包含在?user?和?sys?統(tǒng)計(jì)數(shù)據(jù)中,所以就出現(xiàn)了?real?時(shí)間大于?user?+?sys?了。

        再通過一個(gè)示例來驗(yàn)證并加強(qiáng)我們的理解

        root@chopin:~$?time?sleep?2real???0m2.001suser???0m0.000ssys????0m0.000s

        可以清楚地看到,sleep 命令基本上沒有消耗 cpu,程序真實(shí)的運(yùn)行時(shí)間就是 2 秒

        那我們是不是可以得出如下結(jié)論了呢:

        real >= user + sys

        其實(shí)這個(gè)結(jié)論在單個(gè) cpu 情況下,是正確的。

        如果服務(wù)器是多個(gè) cpu,你的程序正好可以將多個(gè) cpu 充分利用起來,程序運(yùn)行期間是多核心并行的,那么?user?+?sys?統(tǒng)計(jì)的 cpu 時(shí)間可能就會(huì)大于?real?時(shí)間啦

        所以這 3 個(gè)時(shí)間之間的關(guān)系并不是恒定的,你需要清楚的了解服務(wù)器是否為多個(gè)核心。

        通過統(tǒng)計(jì)到的 cpu 消耗時(shí)間,我們也可以大概知道,程序運(yùn)行期間 cpu 利用情況。對于單核,計(jì)算密集型的程序,real?會(huì)很接近?user?和?sys?時(shí)間之和的。

        Tips:有些同學(xué)可能對操作系統(tǒng)可能不太熟悉,這里簡單科普下內(nèi)核態(tài)和用戶態(tài)的基本概念。

        Linux 為使系統(tǒng)更穩(wěn)定,采取了隔離保護(hù)的措施,運(yùn)行狀態(tài)分為內(nèi)核態(tài)和用戶態(tài)

        用戶態(tài):用戶代碼不具備直接訪問底層資源的能力,需要借助內(nèi)核提供的系統(tǒng)調(diào)用 API。在這種隔離保護(hù)下,即使用戶程序崩潰,也不會(huì)影響整個(gè)系統(tǒng)的功能。內(nèi)核態(tài):內(nèi)核代碼具備最大權(quán)限,可執(zhí)行任意 cpu 指令,不受任何限制。內(nèi)核態(tài)通常是操作系統(tǒng)提供的最底層、最可靠的代碼運(yùn)行的,內(nèi)核態(tài)的代碼崩潰是災(zāi)難性的,影響整個(gè)系統(tǒng)的正常運(yùn)行。

        延伸閱讀:

        二、MongoDB是什么

        MongoDB 是文檔型數(shù)據(jù)庫的代表,數(shù)據(jù)模型基于 Bson,而 Elasticsearch 的文檔數(shù)據(jù)模型是 Json,Bson 本質(zhì)是 Json 的一種擴(kuò)展,可以相互直接轉(zhuǎn)換,且它們的數(shù)據(jù)模式都是可以自由擴(kuò)展的,基本無限制。MongoDB 本身定位與關(guān)系型數(shù)據(jù)庫競爭,支持嚴(yán)格的事務(wù)隔離機(jī)制,在這個(gè)層面實(shí)際上與 Elasticsearch 產(chǎn)品定位不一樣,但實(shí)際工作中,幾乎沒有公司會(huì)將核心業(yè)務(wù)數(shù)據(jù)放在 MongoDB 上,關(guān)系型數(shù)據(jù)庫依然是名列前茅選擇。

        聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
        10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
        請您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
        免費(fèi)領(lǐng)取
        今日已有369人領(lǐng)取成功
        劉同學(xué) 138****2860 剛剛成功領(lǐng)取
        王同學(xué) 131****2015 剛剛成功領(lǐng)取
        張同學(xué) 133****4652 剛剛成功領(lǐng)取
        李同學(xué) 135****8607 剛剛成功領(lǐng)取
        楊同學(xué) 132****5667 剛剛成功領(lǐng)取
        岳同學(xué) 134****6652 剛剛成功領(lǐng)取
        梁同學(xué) 157****2950 剛剛成功領(lǐng)取
        劉同學(xué) 189****1015 剛剛成功領(lǐng)取
        張同學(xué) 155****4678 剛剛成功領(lǐng)取
        鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
        董同學(xué) 138****2867 剛剛成功領(lǐng)取
        周同學(xué) 136****3602 剛剛成功領(lǐng)取
        相關(guān)推薦HOT
        開發(fā)APP需要哪些第三方費(fèi)用?

        1、服務(wù)器費(fèi)用如果你的應(yīng)用需要一個(gè)服務(wù)器來存儲(chǔ)和處理數(shù)據(jù),你需要支付服務(wù)器費(fèi)用。服務(wù)器費(fèi)用通常是每月收費(fèi)的,而且價(jià)格因服務(wù)提供商和服務(wù)...詳情>>

        2023-10-13 06:42:42
        Web應(yīng)用開發(fā)中常見的HTTP Server和技術(shù)組件有哪些?

        一、Web應(yīng)用開發(fā)中常見的HTTP Server有哪些1、ApacheApache HTTP Server(簡稱Apache)是Apache軟件基金會(huì)的一個(gè)開放源碼的網(wǎng)頁服務(wù)器,可以在...詳情>>

        2023-10-13 06:37:05
        MySQL中的MyISAM讀的效率高,InnoDB寫的效率高,原理是什么?

        一、MySQL中的MyISAM讀的效率高,InnoDB寫的效率高,原理是什么1、MyISAM存儲(chǔ)引擎采用表格鎖MyISAM 存儲(chǔ)引擎采用了一種稱為“表格鎖”(Table-l...詳情>>

        2023-10-13 06:31:35
        訪問網(wǎng)頁的背后發(fā)生了什么?

        一、域名解析當(dāng)我們在瀏覽器中輸入網(wǎng)頁的域名時(shí),首先需要進(jìn)行域名解析。瀏覽器會(huì)將域名發(fā)送給本地域名服務(wù)器(DNS),以獲取對應(yīng)的IP地址。如...詳情>>

        2023-10-13 06:04:09
        外企銀行一般用什么linux版本系統(tǒng)和數(shù)據(jù)庫呢?

        一、外企銀行一般用什么linux版本系統(tǒng)和數(shù)據(jù)庫Linux有非常多的發(fā)行版本,從性質(zhì)上劃分,大體分為由商業(yè)公司維護(hù)的商業(yè)版本與由開源社區(qū)維護(hù)的免...詳情>>

        2023-10-13 05:50:44
        快速通道
        荣成市| 临桂县| 沙雅县| 临沭县| 民乐县| 留坝县| 吴川市| 永嘉县| 滕州市| 布尔津县| 垣曲县| 南靖县| 沾化县| 涿鹿县| 平江县| 通州区| 开阳县| 布拖县| 班玛县| 大新县| 沅陵县| 聂荣县| 民权县| 高陵县| 巴林左旗| 福建省| 藁城市| 朔州市| 竹溪县| 潜江市| 龙井市| 伊川县| 安陆市| 察隅县| 城步| 藁城市| 同心县| 绵阳市| 凤台县| 广南县| 通榆县|