在Linux下判斷系統當前是否開啟了超執行緒

2021-07-05 20:49:35 字數 1657 閱讀 1308

在linux下判斷系統當前是否開啟了超執行緒 ,

在判斷當前是否開啟了超執行緒之前,需要先判斷另外幾個資料: 

1,物理cpu個數:

[root@localhost ~]# cat /proc/cpuinfo | grep "physical id" | sort | uniq  

physical id : 0 

physical id : 1

可以看到物理cpu個數為2,物理cpu也就是機器外面就能看到的乙個個cpu,每個物理cpu還帶有單獨的風扇。

2,每個物理cpu的邏輯核數:

[root@localhost ~]# 

cat /proc/cpuinfo | grep "cores" | uniq

cpu cores   : 6

3,系統整個cpu執行緒數:

[root@localhost ~]# cat /proc/cpuinfo | grep "processor" | wc -l 

24有了三面幾個資料,就可以判斷當前是否開啟了超執行緒了,沒開啟超執行緒的情況下,系統的cpu執行緒數=物理cpu個數*每個物理cpu的邏輯核數*1,因為每個邏輯核只跑了1個cpu執行緒,如果開啟了超執行緒,那麼cpu執行緒數=物理cpu個數*每個物理cpu的邏輯核數*2,因為每個邏輯核跑了2個cpu執行緒。所以,上面的24=2*6*2,

可以判斷當前開啟了超執行緒。

[root@localhost ~]# cat /proc/cpuinfo | grep "model name" | uniq model name  : intel(r) xeon(r) cpu           x5670  @ 2.93ghz [root@localhost ~]#  

這是一台x5670機器,從intel的cpux5670規格頁面(可以看到,其的確支援intel® hyper-threading technology。再看另外乙個:

12345678910 [root@localhost ~]# cat /proc/cpuinfo | grep "physical id" | sort | uniq  physical id : 0 physical id : 1 [root@localhost ~]# cat /proc/cpuinfo | grep "cores" | uniq cpu cores   : 4 [root@localhost ~]# cat /proc/cpuinfo | grep "processor" | wc -l 8 [root@localhost ~]# cat /proc/cpuinfo | grep "model name" | uniq model name  : intel(r) xeon(r) cpu           e5504  @ 2.00ghz [root@localhost ~]#

8=2*4,沒有開啟超執行緒,從intel的cpue5504規格頁面(可以看到,其不支援intel® hyper-threading technology,想開啟都沒法。

另外,根據physical id資訊可以判斷哪些邏輯核在同乙個物理核上,因為同一物理核上的邏輯核的physical id相等;而根據core id資訊又可以判斷哪兩個cpu執行緒跑在同乙個邏輯核上,因為跑在同一邏輯核上的cpu執行緒的core id相等,但是,由於不同物理核上的邏輯核core id可以相等,所以在進行第二個判斷(即哪兩個cpu執行緒跑在同乙個邏輯核上)前需要先進行第乙個判斷(即哪些邏輯核在同乙個物理核上)。

在Android中,如何判斷當前是否在桌面上

在做android上面的懸浮窗的時候,一般需要去判斷一種情況,即當前是否是在桌面上 即按下home鍵時回到的手機介面 1 在桌面上,才展示懸浮窗 2 不在桌面上,則隱藏懸浮窗 桌面 home 其實本質上也是乙個應用程式,也是由activity組成的,所以乙個手機裡面有可能裝有多個桌面應用,這是第一點...

Android判斷當前時間是否在某個時間段

開發中有時候需求是要我們判斷當前時間是否是在當天的某個時間段,比如判斷某個操作是否是在工作時間 這個時間可以自定義 只需要寫個方法如下 判斷當前系統時間是否在指定時間的範圍內 beginhour 開始小時,例如22 beginmin 開始小時的分鐘數,例如30 endhour 結束小時,例如 8 e...

判斷當前網路是否可用

有兩種方式 方式一,是否有網路 所有網路 mobile wifi public boolean isnetworkconnected 第二種方式,是否有指定的網路 檢查wifi是否可用的兩種方式 wifimanager wifimanager wifimanager getsystemservice...