性能監控——vmstat

性能監控——vmstat

? 性能監控是對 IT 系統運行效率和有效性的系統觀察和測量。它涉及收集、分析和報告各種組件(包括應用程序、網絡、服務器和數據庫)的關鍵性能指標 (KPI)。此過程使用專門的工具來跟蹤響應時間、吞吐量、資源利用率和錯誤率等指標。性能監控有助于識別瓶頸、預測潛在問題和優化系統資源。它對于維護服務水平協議 (SLA)、確保用戶滿意度和支持容量規劃至關重要。在現代 IT 環境中,性能監控通常結合實時分析、AI 驅動的洞察和自動警報系統,從而實現對復雜分布式系統的主動管理,并支持 IT 運營和服務交付的持續改進。

vmstat:該命令( virtual memory statistics的縮寫)是 Linux 中內置的監控實用程序。該命令用于獲取有關內存、系統進程、分頁、中斷、塊 I/O、磁盤和 CPU 調度的信息。用戶可以通過指定采樣周期來實時觀察系統活動。

vmstat命令是系統監控工具sysstat的一部分,可生成[PU 和設備統計信息和報告。vmstat的安裝

yum install sysstat

一、vmstat命令語法

基本vmstat語法是:

vmstat [option] [delay[count]]
options:用于定制輸出的各種開關
delay:定義輸出更新之間的時間間隔
count:指定延遲間隔后輸出更新的次數,如果未設置count,則默認值為infinite
options解釋
-a顯示活躍和非活躍內存。這有助于你了解系統中內存的使用狀態,哪些內存正在被頻繁使用(活躍內存),哪些內存處于相對空閑狀態(非活躍內存)。
-f輸出從系統啟動至今的 fork 次數。fork 是創建新進程的一種方式,此信息可讓你了解系統創建進程的總體情況。
-m顯示 slab 信息。slab 是 Linux 內核中用于管理內存分配的數據結構,該參數能幫助你了解內核內存分配的詳細情況。
-n僅在開始時顯示一次各字段名稱,后續持續輸出信息時不再重復顯示字段名,使輸出更簡潔。
-s以表格形式輸出內存和交換空間的統計信息,涵蓋了多種內存相關的統計數據,如總內存、空閑內存、已使用內存、交換空間使用情況等。
-d顯示磁盤的統計信息,包括磁盤的讀寫次數、讀寫扇區數、讀寫時間等,可用于監控磁盤的 I/O 性能。
-D顯示磁盤的詳細統計信息,包括每個磁盤設備的 I/O 操作情況,如讀請求、寫請求、合并的讀請求、合并的寫請求、讀扇區數、寫扇區數等
-p后面需跟磁盤分區名,用于顯示指定磁盤分區的統計信息,幫助你針對性地了解某個磁盤分區的 I/O 情況。
-S用于指定輸出信息中內存、I/O 等數據的單位,可取值為 k(千字節)、m(兆字節)等。例如,vmstat -S m 會以兆字節為單位顯示內存和 I/O 數據。
-t在輸出信息中添加時間戳,方便你關聯不同時間點的系統狀態信息。
-V顯示版本信息
man vmstat在終端顯示用戶手冊

二、基本vmstat輸出字段解釋

[root@Rocky ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st2  0      0 521468   4204 637204    0    0    23     3  100  208  0  1 99  0  0

各字段含義如下:

  1. procs:進程統計
    • r:運行隊列中的進程數。即等待 CPU 時間片的進程數量。如果這個數字持續高于系統的 CPU 核心數,說明系統的 CPU 資源比較緊張,可能存在性能瓶頸。
    • b:處于不可中斷睡眠狀態的進程數。通常是進程正在等待 I/O 操作完成,比如等待磁盤讀寫、網絡數據接收等。如果該值長期不為 0 且較大,可能表示系統存在 I/O 性能問題。
  2. memory:內存統計
    • swpd:已使用的交換空間大小,單位是 KB。交換空間是磁盤上的一塊區域,當物理內存不足時,系統會將一部分內存數據交換到交換空間中。如果這個值不斷增大,說明系統的物理內存可能不夠用,需要關注系統內存使用情況。
    • free:空閑的物理內存大小,單位為 KB。這是系統當前未被使用的內存量,可以直接反映出系統內存的剩余可用資源。
    • buff:用于塊設備的緩沖區內存大小,單位為 KB。緩沖區主要用于緩存磁盤塊數據,以提高磁盤 I/O 的性能。當系統讀取或寫入磁盤數據時,數據會先在緩沖區中進行緩存,以便后續再次訪問時可以直接從緩沖區中獲取,減少實際的磁盤 I/O 操作。
    • cache:用于文件系統的緩存內存大小,單位為 KB。文件系統緩存主要用于存儲最近訪問過的文件數據和元數據。與緩沖區不同,它更側重于文件層面的緩存,而不是磁盤塊層面。通過文件系統緩存,可以加速文件的讀取操作,提高系統的整體性能。
  3. swap:交換空間統計
    • si:從磁盤交換到內存的交換頁數量,單位為 KB/s。表示每秒從交換空間(磁盤)換入到物理內存的數據量。如果這個值較大,說明系統頻繁地從交換空間讀取數據,可能是物理內存不足,導致系統不得不使用交換空間來滿足內存需求。
    • so:從內存交換到磁盤的交換頁數量,單位為 KB/s。表示每秒從物理內存換出到交換空間(磁盤)的數據量。同樣,如果該值較大,也說明系統內存緊張,需要將部分內存數據交換到磁盤上以騰出物理內存空間。
  4. io:輸入/輸出統計
    • bi:從塊設備(如磁盤)讀取的塊數量,單位為塊 /s。這個數值反映了系統對磁盤等塊設備的讀操作頻率和數據量。通過觀察該值,可以了解系統的磁盤讀負載情況。
    • bo:寫入到塊設備的塊數量,單位為塊 /s。它體現了系統對磁盤等塊設備的寫操作頻率和數據量,用于評估磁盤的寫負載。如果 bibo 的值同時較高,說明系統的磁盤 I/O 活動比較頻繁,可能存在 I/O 性能問題。
  5. system:系統調度
    • in:每秒的中斷次數,包括時鐘中斷、硬件中斷等。中斷是計算機系統中用于處理異步事件的機制,例如硬件設備完成數據傳輸、定時器到期等都會產生中斷。如果 in 的值過高,可能表示硬件設備頻繁產生中斷,這會消耗 CPU 資源,影響系統性能。
    • cs:每秒的上下文切換次數。上下文切換是指 CPU 從一個進程或線程切換到另一個進程或線程時需要保存和恢復的相關狀態信息,包括寄存器值、程序計數器等。頻繁的上下文切換會消耗 CPU 時間,降低系統的整體性能。如果 cs 的值很大,說明系統中的進程或線程切換比較頻繁,可能需要進一步分析原因,例如是否存在過多的進程或線程競爭資源。
  6. cpu:cpu統計信息,以百分比形式展示
    • us:用戶空間進程使用 CPU 的時間百分比。即運行在用戶態的應用程序、進程等使用 CPU 的時間占總 CPU 時間的比例。如果該值較高,說明用戶程序消耗了較多的 CPU 資源,可能是某個或某些應用程序存在性能問題,需要進一步分析優化。
    • sy:內核空間進程使用 CPU 的時間百分比。表示運行在內核態的系統進程、內核函數等使用 CPU 的時間占比。內核負責管理系統資源、處理中斷、進行進程調度等操作,如果 sy 的值過高,可能是內核任務過于繁重,例如系統調用頻繁、內核模塊存在性能問題等。
    • id:CPU 空閑時間百分比。該值越高,說明 CPU 越空閑,系統的 CPU 資源利用率越低;反之,如果該值較低,表明 CPU 負載較高,系統可能處于繁忙狀態。
    • wa:CPU 等待 I/O 完成的時間百分比。當 CPU 發起 I/O 操作后,需要等待 I/O 設備完成數據傳輸才能繼續執行后續操作,這段等待時間就是 wa。如果 wa 的值較大,說明系統存在 I/O 瓶頸,CPU 大部分時間都在等待 I/O 操作完成,導致 CPU 利用率不高。此時需要關注磁盤、網絡等 I/O 設備的性能情況。
    • st:被虛擬機偷走的 CPU 時間百分比(僅在虛擬機環境中有意義)。如果系統是在虛擬機中運行,這個值表示虛擬機監控程序(如 KVM、Xen 等)占用的 CPU 時間,導致客戶機操作系統可用的 CPU 時間減少。如果 st 的值較高,說明虛擬機監控程序消耗了較多的 CPU 資源,可能會影響虛擬機內系統和應用程序的性能。

三、示例

3.1 顯示活動和非活動系統內存

  • 活動內存:進程正在使用的內存。

  • 非活動內存:分配給不再運行的進程的內存。

  • 使用該**-a選項可將buffcache內存列替換為inactactive**列。這些列顯示系統中非活動和活動內存的數量。

[root@Rocky ~]# vmstat -a
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st2  0      0 521544 815128 253636    0    0    20     3   95  202  0  1 99  0  0

3.2 內存和調度統計

##生成有關內存、事件計數器和 CPU 調度統計信息的更多詳細信息
[root@Rocky ~]# vmstat -s

使用 vmstat 查看 Linux 中的內存和調度統計信息。

輸出顯示的報告與vmstat基本報告類似,但某些部分包含更多詳細信息。例如,輸出將良好CPU 時間和非良好 CPU 時間分開,并在基本報告中合并vmstat

輸出中有四個部分:

  1. 輸出的第一部分涉及已使用的內存量:
  • 總物理內存。
  • 當前使用的內存。
  • 活動記憶。
  • 非活動內存。
  • 釋放記憶。
  • 緩沖內存。
  • 高速緩存內存。
  • 交換內存信息。

2.第二部分顯示CPU統計信息:

  • 非良好 CPU 滴答數 – CPU 用于高優先級 進程的次數。
  • 良好的 CPU 滴答數 – CPU 用于低優先級 進程的次數 。
  • 系統 CPU 滴答 – CPU 用于內核進程的次數 。
  • 空閑 CPU 滴答數——CPU 空閑的次數。
  • IO-wait——CPU 用于輸入/輸出管理的次數。
  • IRQ ——CPU 接收中斷請求的次數 。
  • softirq——CPU 接收軟件中斷的次數 。
  • 被盜 CPU 滴答數——虛擬機竊取 CPU 時間的次數。

3.第三部分顯示與內存分頁相關的值:

  • 從虛擬內存 調入的頁面總數。

  • 調出 到虛擬內存的總頁面數。

  • 從交換內存讀取的總頁面數。

  • 寫入交換內存的總頁面數。

  • 最后一節描述了 各種事件計數器:

  • 自啟動以來的中斷次數。

  • 執行的上下文切換的次數。

  • 上次啟動時間的時間戳 。

  • fork的總數 。

3.3 顯示自啟動以來的Fork次數

  • fork:是從現有正在運行的進程中創建的新進程

    [root@Rocky ~]# vmstat -f3026 forks
    

3.4 顯示快速摘要磁盤統計信息

  • 該**-D**選項會生成所有磁盤活動的快速摘要統計信息

    [root@Rocky ~]# vmstat -D4 disks2 partitions13241 total reads20 merged reads1765491 read sectors14401 milli reading5312 writes328 merged writes267212 written sectors7249 milli writing0 inprogress IO17 milli spent IO
    ## 輸出顯示系統詳細信息,例如磁盤數量、分區數量、讀取次數、寫入次數等
    

3.5 顯示磁盤統計信息(讀/寫統計信息)

  • -d:獲取每個磁盤使用情況的詳細統計信息

    [root@Rocky ~]# vmstat -d
    disk- ------------reads------------ ------------writes----------- -----IO------total merged sectors      ms  total merged sectors      ms    cur    sec
    sr0       40      0    2083      58      0      0       0       0      0      0
    sda     7011     20  932380    7240   2569    332  136489    3175      0      9
    dm-0    6090      0  826924    7078   2885      0  132393    4322      0      9
    dm-1     104      0    4440      33      0      0       0       0      0      0

    使用 vmstat 查看詳細的磁盤統計信息。

輸出顯示每個磁盤的三列 -讀取、寫入和IO 。讀取和寫入以毫秒為單位,而 IO 列以秒為單位。

每欄有若干小節:

  • disk:表示磁盤設備的名稱。例如 sr0 通常代表光驅設備,sda 一般是第一塊 SATA 硬盤,dm-0dm-1 通常是與邏輯卷管理(LVM)相關的設備映射。
  • reads 部分
    • total:從系統啟動以來,該磁盤設備執行的讀操作總次數。比如 sdatotal 為 7011,表示從系統啟動到現在,對 sda 磁盤進行了 7011 次讀操作。
    • merged:合并的讀操作次數。操作系統為了提高磁盤 I/O 效率,會嘗試將相鄰的讀請求合并成一個更大的請求。以 sda 為例,merged 為 20,意味著有 20 次讀請求被合并處理。
    • sectors:從磁盤讀取的扇區總數。每個扇區通常為 512 字節。像 sdasectors 為 932380,那么讀取的數據總量約為 932380 * 512 字節。
    • ms:讀操作總共花費的時間(以毫秒為單位)。如 sda 的讀操作總共花費了 7240 毫秒。
  • writes 部分
    • total:從系統啟動以來,該磁盤設備執行的寫操作總次數。例如 sda 的寫操作總次數為 2569 次。
    • merged:合并的寫操作次數。sda 有 332 次寫請求被合并處理。
    • sectors:寫入到磁盤的扇區總數。sda 寫入的扇區總數為 136489 個。
    • ms:寫操作總共花費的時間(以毫秒為單位)。sda 的寫操作總共花費了 3175 毫秒。
  • IO 部分
    • cur:當前正在進行的 I/O 操作數量。如果該值長時間不為 0,可能表示磁盤存在 I/O 瓶頸。這里各磁盤的 cur 都為 0,說明當前沒有正在進行的 I/O 操作。
    • sec:從系統啟動以來,該磁盤設備進行 I/O 操作所花費的總時間(以秒為單位)。例如 sdasec 為 9,即從系統啟動到現在,sda 進行 I/O 操作總共花費了 9 秒。

3.6 顯示分區統計信息

  • **-p**使用該選項,后跟分區名稱,生成與特定分區相關的報告:

    [root@Rocky ~]# vmstat -p sda1
    sda1            reads      read sectors      writes  requested writes615             90088           2              4096
    ##在此示例中,輸出顯示 sda 設備的第一個分區sda1的 摘要。摘要包括該分區上的磁盤讀寫計數以及磁盤讀寫任務所涉及的扇區總數
    

3.7 顯示更新的時間戳信息

  • -t:獲取時間戳以及請求的輸出

    [root@Rocky ~]# vmstat -t
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- -----timestamp-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st                 CST5  0      0 525784   4204 637264    0    0    17     3   91  197  0  1 99  0  0 2025-03-20 19:43:05
    ## 輸出與基本輸出相同vmstat,但添加了時間戳
    

3.8使用延遲值

  • [delay]語法指定每次輸出更新之間的時間間隔,以秒為單位

    [root@Rocky ~]# vmstat 3
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st2  0      0 525784   4204 637264    0    0    17     3   91  197  0  1 99  0  01  0      0 525612   4204 637264    0    0     0     0  122  329  0  1 99  0  00  0      0 525580   4204 637264    0    0     0     0  123  332  0  1 99  0  00  0      0 525580   4204 637264    0    0     0     0  119  326  0  0 100  0  0
    ^C
    ##在此示例中,每次報告更新之間有三秒的延遲。如果沒有指定延遲,則只會打印一個輸出,給出自上次重啟以來的平均值。
    

3.9 使用計數值

  • 注意:較低的延遲值會加重系統負擔,因為它會無限期地運行命令,直到您使用Ctrl+C組合鍵手動停止它 。為避免額外的負載,請將計數值與延遲值一起使用。語法是,vmstat [delay[count]]

    ##在這個例子中,我們指定我們想要五秒延遲和三次輸出更新。
    [root@Rocky ~]# vmstat 5 3
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st2  0      0 525724   4204 637264    0    0    17     2   90  197  0  1 99  0  00  0      0 525612   4204 637264    0    0     0     0  119  318  0  1 99  0  01  0      0 525612   4204 637264    0    0     0     0  122  321  0  1 99  0  0

3.10 更改單位

顯示內存和交換統計信息的默認單位是千字節。要更改輸出單位,請使用**-S**選項和以下參數之一:

  • k:1000 字節。
  • K:1024字節。
  • m:1000000 字節。
  • M:1048576字節。

要以十進制千字節和兆字節顯示統計信息,請分別使用km。大寫KM以十六進制千字節和兆字節顯示統計信息。

## 使用以下命令每 5 秒更新一次統計信息,并將顯示單位更改為兆字節:
[root@Rocky ~]# vmstat 5 -S M
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st2  0      0    513      4    622    0    0    17     2   90  196  0  1 99  0  00  0      0    513      4    622    0    0     0     0  111  313  0  1 99  0  0
^C

3.11 顯示Slab統計信息

  • slab 緩存是 Linux 內核用于管理內存分配的數據結構,它有助于提高頻繁分配和釋放的小對象的內存分配效率。要查看 slab 統計信息,請使用該**-m選項。請注意,此操作需要超級用戶權限**

    [root@Rocky ~]# vmstat -m
    

    使用 vmstat 查看 Linux 中的 slab 統計信息。

  • 整體列名解釋

    • Cache:表示 slab 緩存的名稱,不同的名稱對應著不同類型的內核對象緩存,例如 xfs 相關的緩存與 XFS 文件系統的內核操作有關。

    • Num:當前處于使用狀態(已分配)的對象數量,即該 slab 緩存中已經被內核使用的對象個數。

    • Total:該 slab 緩存中對象的總數量,包括已分配和未分配的對象。

    • Size:每個對象所占用的內存大小,單位是字節(Byte)。

vmstat -m


[外鏈圖片轉存中...(img-pPGE4ByA-1742476536369)]- 整體列名解釋- **Cache**:表示 slab 緩存的名稱,不同的名稱對應著不同類型的內核對象緩存,例如 `xfs` 相關的緩存與 XFS 文件系統的內核操作有關。- **Num**:當前處于使用狀態(已分配)的對象數量,即該 slab 緩存中已經被內核使用的對象個數。- **Total**:該 slab 緩存中對象的總數量,包括已分配和未分配的對象。- **Size**:每個對象所占用的內存大小,單位是字節(Byte)。- **Pages**:該 slab 緩存占用的物理內存頁數。在 Linux 系統中,內存以頁為單位進行管理,一頁的大小通常是 4KB(不同系統可能有所不同)。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/72974.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/72974.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/72974.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

搭建Python量化開發環境:從零開始的完整指南

搭建Python量化開發環境:從零開始的完整指南 在量化投資領域,一個穩定且高效的開發環境是成功的關鍵。本文將引導你一步步搭建起自己的Python量化開發環境,確保你能夠順利開始編寫和運行量化策略。 🚀量化軟件開通 &#x1f68…

圖像分割的mask有空洞怎么修補

分享一個對實例分割mask修補的方法,希望對大家有所幫助。 1. 這是我準備分割的圖片 2 分割結果 可以看到衣服部分有一些沒分割出來,二值化圖片能清晰看到衣服部分有些黑色未分出的地方。 3 補全mask區域 import cv2 import numpy as npdef fill_mask_h…

Qt 控件概述 QLabel

目錄 QLabel顯示類控件 label如何做到與窗口同步變化 邊框 Frame QLabel顯示類控件 ?? ?? textFormat :設置文件格式 ? Pixmap :標簽圖片 label如何做到與窗口同步變化 Qt中對應用戶的操作 : 事件和信號 拖拽窗口大小就會觸發…

詞頻統計 ccf-csp 2024-2-1

在學習了文本處理后,小 P 對英語書中的 n篇文章進行了初步整理。 具體來說,小 P將所有的英文單詞都轉化為了整數編號。 假設這 n 篇文章中共出現了 m個不同的單詞,則把它們從 1到 m進行編號。 這樣,每篇文章就簡化為了一個整數…

用爬蟲解鎖 Shopee 店鋪商品數據,開啟電商新洞察

在電商競爭白熱化的當下,Shopee 作為全球知名的電商平臺,匯聚了海量的商品與商機。對于電商從業者、數據分析師、創業者來說,精準掌握 Shopee 店鋪的商品信息,就如同手握一把開啟財富大門的鑰匙。而爬蟲技術,無疑是幫助…

k8s中的service解析

k8s中的service解析 在k8s中,我們可以通過pod來創建服務。 然而,當我們創建多個 Pod 來提供同一項服務時,直接通過 Pod IP 進行訪問會變得復雜且不可維護。因此,Kubernetes 提供了 Service 這一抽象概念,用于對外暴露…

git 命令回退版本

1、查看提交記錄 git log --oneline # 簡化的提交歷史&#xff08;推薦&#xff09; # 或 git log # 完整提交歷史2、版本回退 git reset --hard <commit-hash>3、如果已推送過代碼到遠程倉庫&#xff0c;需強制推送更新 git push -f

深度學習與傳統算法在人臉識別領域的演進:從Eigenfaces到ArcFace

一、傳統人臉識別方法的發展與局限 1.1 Eigenfaces&#xff1a;主成分分析的經典實踐 算法原理 Eigenfaces是基于主成分分析&#xff08;PCA&#xff09;的里程碑式方法。其核心思想是將人臉圖像視為高維向量&#xff0c;通過協方差矩陣計算特征向量&#xff08;即特征臉&…

串口接收不到數據,串口RX配置(f407),f103和f407的區別

問題 芯片&#xff1a;STM32F407&#xff0c;軟件&#xff1a;標準庫 使用串口時&#xff0c;直接把之前STM32F103的串口配置移植過來&#xff0c;同樣以串口4為例&#xff0c;代碼如下&#xff1a; STM32F103 UART4&#xff1a; void UART4_Configuration(uint32_t BaudRa…

淺分析 PE3R 感知高效的三維重建

"近期&#xff0c;二維到三維感知技術的進步顯著提升了對二維圖像中三維場景的理解能力。然而&#xff0c;現有方法面臨諸多關鍵挑戰&#xff0c;包括跨場景泛化能力有限、感知精度欠佳以及重建速度緩慢。為克服這些局限&#xff0c;我們提出了感知高效三維重建框架&#…

存算一體與存算分離:架構設計的深度解析與實現方案

隨著數據量的不斷增大和對計算能力的需求日益提高&#xff0c;存算一體作為一種新型架構設計理念&#xff0c;在大數據處理、云計算和人工智能等領域正逐步引起廣泛關注。在深入探討存算一體之前&#xff0c;我們需要先了解存儲和計算的基本概念&#xff0c;以及存算分離和存算…

匯編與反匯編:DEBUG 命令使用指南

前言 匯編語言是計算機底層編程語言&#xff0c;直接與 CPU 指令集對應。掌握匯編語言和調試工具&#xff08;如DEBUG&#xff09;是深入理解計算機工作原理的關鍵。本文將介紹匯編與反匯編的基本概念&#xff0c;并詳細講解如何使用 DEBUG 命令進行調試和內存操作。 目錄 一、…

數據分析的12個挑戰及其解決方法

俗話說得好“說起來容易做起來難。”數據分析對于風險管理者是極為重要的。我們可以利用數據分析結論&#xff0c;來為企業決策做有效協助&#xff0c;幫助企業改善財務狀況&#xff0c;提升企業業務銷售水平&#xff0c;幫助員工預測可能發生的問題&#xff0c;并協助監控企業…

棧/堆/static/虛表

在 C 里&#xff0c;棧空間主要用來存放局部變量、函數調用信息等。下面為你介紹棧空間在 C 里的運用方式。 1. 局部變量的使用 在函數內部定義的變量會被存于棧空間&#xff0c;當函數執行結束&#xff0c;這些變量會自動被銷毀。 #include <iostream>void exampleFu…

Vue keepalive學習用法

在Vue中&#xff0c;<keep-alive>的include屬性用于指定需要緩存的組件&#xff0c;其實現方式如下&#xff1a; 1. 基本用法 ? 字符串形式&#xff1a;通過逗號分隔組件名稱&#xff0c;匹配到的組件會被緩存。 <keep-alive include"ComponentA,ComponentB&…

搭建個人博客教程(Hexo)

如何快速搭建一套本地的博客系統呢&#xff1f;這里有一套gitNode.jsHexo的部署方案來進行解決。 安裝git Git 是一款免費開源的分布式版本控制系統&#xff0c;由 Linus Torvalds 于 2005 年為 Linux 內核開發設計。它通過本地倉庫和遠程倉庫實現代碼管理&#xff0c;支持分支…

手撕算法之`vector` 擴容、`string` 分割、鏈表翻轉

手寫常見操作:vector 擴容、string 分割、鏈表翻轉 (一)vector擴容 在 C++ 中,vector 的擴容機制是動態數組實現的核心特性,直接關系到性能和內存使用效率。以下是深入剖析: 1. 擴容觸發條件 vector<int> v; v.push_back(1); // 當 size() == capacity() 時觸發…

鴻蒙NEXT開發問題大全(不斷更新中.....)

目錄 問題1&#xff1a;鴻蒙NEXT獲取華為手機的udid ?問題2&#xff1a;[Fail]ExecuteCommand need connect-key? 問題3&#xff1a;測試時如何安裝app包 問題1&#xff1a;鴻蒙NEXT開發獲取華為手機的udid hdc -t "設備的序列號" shell bm get --udid 問題2&…

LiteratureReading:[2016] Enriching Word Vectors with Subword Information

文章目錄 一、文獻簡明&#xff08;zero&#xff09;二、快速預覽&#xff08;first&#xff09;1、標題分析2、作者介紹3、引用數4、摘要分析&#xff08;1&#xff09;翻譯&#xff08;2&#xff09;分析 5、總結分析&#xff08;1&#xff09;翻譯&#xff08;2&#xff09;…

ZMC600E,多核異構如何成就機器人精準控制?

ZMC600E主站控制器憑借其多核異構處理器的強大性能&#xff0c;實現了高算力與高實時性的完美平衡&#xff0c;讓機器人動作流暢、精準無誤。接下來&#xff0c;讓我們深入了解其內核結構的奧秘。 在ZMC600E主站控制器控制機器人的時候&#xff0c;可以精準的控制機器人執行各種…