JAVA控制CPU佔用率(程式設計之美有感)(二)
JAVA控制CPU佔用率(程式設計之美有感)(二)
繼續上次的電腦CPU控制,很遺憾更新的有點慢,雖然我知道沒人看,最近專案上任務有點多,所以時間少了點,不過我是達不到目的是不會放棄的!
上次勉強能達到有點類似於直線的CPU佔用率控制圖,但是這只是所有CPU的平均工作,遠不能達到每個CPU都受我控制顯示一條直線的程式,這幾天沒寫部落格但是也想了挺多,我想既然我電腦是4個CPU,那我建立4個實體,每個實體都跑百分之五十呢?心痛不如行動,上程式碼:
阿西吧,想那麼好但是沒什麼卵用啊!public static void main(String[] args) throws InterruptedException { ComputeProcess th1= new ComputeProcess(); ComputeProcess th2= new ComputeProcess(); ComputeProcess th3= new ComputeProcess(); ComputeProcess th4= new ComputeProcess(); th2.runProcess(); th3.runProcess(); th4.runProcess(); th1.runProcess(); } } private static void runProcess(){ long busyTime = 5; Thread th = Thread.currentThread(); long nowSys = System.currentTimeMillis(); while (true) { nowSys = System.currentTimeMillis(); while ((System.currentTimeMillis() - nowSys) <= busyTime) { } try { th.sleep(5); } catch (InterruptedException e) { e.printStackTrace(); } } }
發了一會呆,突然想起來,我建立實體沒什麼卵用啊,並不影響CPU的工作啊啊啊啊,應該建立執行緒試試的啊~~果斷讓程式繼承了Thread類,並重寫了run方法,讓run去呼叫runProcess,不要問我為什麼不在run方法裡面寫,因為我懶!!!然後把所有的th_.runProcess()改成th_.start(),再看一下效果圖:
哈哈哈啊哈哈哈哈哈哈哈哈哈哈哈!
終於有希望了啊啊啊啊啊啊啊啊!
下面就是考慮要控制計算機的記憶體了,這樣只是自己手動配置busy和idle比率為50%但是系統本身就會執行好多記憶體,所以這個比例一直會大於50.從網上搜了一下可以使用sigar進行檢視系統的資訊:
使用sigar來監控,簡單方便!
使用說明:以下程式碼需要配合sigar的dll檔案來用,需要將dll檔案放到JDK下的bin資料夾下。原文:點選開啟連結。原文中沒有sigar下載地址,不過有需要的話可以私信或者發郵件給我我給你發[email protected]
下面是使用siger的控制檯得到的資訊:
相關推薦
JAVA控制CPU佔用率(程式設計之美有感)(二)
JAVA控制CPU佔用率(程式設計之美有感)(二) 繼續上次的電腦CPU控制,很遺憾更新的有點慢,雖然我知道沒人看,最近專案上任務有點多,所以時間少了點,不過我是達不到目的是不會放棄的! 上次勉強能達到有點類似於直線的CPU佔用率控制圖,但是這只是所有CP
【轉】Linux下java程序CPU佔用率高分析方法
文章轉載的地址: https://blog.linuxeye.cn/343.html 在工作當中,肯定會遇到由程式碼所導致的高CPU耗用以及記憶體溢位的情況。這種情況發生時,我們怎麼去找出原因並解決。 一般解決方法是通過top命令找出消耗資源高的執行緒id,利用strace命令檢視該執行緒
Java獲取CPU佔用率
原文連結:https://www.jianshu.com/p/015cc4805e29 最近做一個Java效能統計的問題,需要統計當前程序佔用CPU的情況,最開始使用Java MxBean來獲取 OperatingSystemMXBean osMxBean = ManagementFactory
Java 獲取 CPU 佔用率
轉自:https://www.jianshu.com/p/015cc4805e29 最近做一個Java效能統計的問題,需要統計當前程序佔用CPU的情況,最開始使用Java MxBean來獲取: OperatingSystemMXBean osMxBean = ManagementFactor
JAVA併發:多執行緒程式設計之同步“監視器monitor”(三)
在JAVA虛擬機器中,每個物件(Object和class)通過某種邏輯關聯監視器,為了實現監視器的互斥功能,每個物件(Object和class)都關聯著一個鎖(有時也叫“互斥量”),這個鎖在作業系統書籍中稱為“訊號量”,互斥(“mutex”)是一個二進位制的訊號量。 如果一個執行緒擁有了某些資料的鎖,其他的
字串移位包含的問題(程式設計之美)
問題:給定兩個字串s1和s2,要求判斷s2是否能夠被通過s1做迴圈移位(rotate)得到的字串包含。例如,S1=AABCD和s2=CDAA,返回true;給定s1=ABCD和s2=ACBD,返回false。 我們也可以對迴圈移位之後的結果進行分析。 以S1 = A
階乘的一些規律(程式設計之美)
問題一: N!末尾有多少個0? 問題二: N!二進位制表示中最低位1的位置? 首先來介紹幾個要點和規律: n! = n(n - 1)! (n > 0) n! = 1 (n = 0) 這裡注意不要忘了 問題一等價轉化 <=> N! 的質因數
java獲取JVM的CPU佔用率、記憶體佔用率、執行緒數及伺服器的網口吞吐率、磁碟讀寫速率
怎麼說呢,本人菜鳥一枚,費了幾天時間,終於做了一個用java獲取JVM的CPU佔用率、記憶體佔用率、執行緒數及伺服器的網口吞吐率、磁碟讀寫速率的實現。 其中windows環境下獲取jvm 的cpu佔用率這裡是參考網上別人的東西(在此感謝提供參考的網友),其他的都是基於自己的想法做出來的。該工具類
程式設計之美之小飛的電梯排程演算法(多種解法)---Java語言
1.題目情景 我們假設都是從一樓上電梯的,而至於訊電梯停在其中的某一層。即所有的乘客都從一樓上電梯,到達某層之後,電梯停下來,所有乘客再從這裡爬樓梯到自己的目的層。在一樓的時候,每個乘客選擇自己的目的層,電梯則自動計算出應停的樓層,並且能夠保證該層停使得所有
線上Java程式導致伺服器CPU佔用率過高的問題排除過程
1、故障現象 客服同事反饋平臺系統執行緩慢,網頁卡頓嚴重,多次重啟系統後問題依然存在,使用top命令檢視伺服器情況,發現CPU佔用率過高。 2、CPU佔用過高問題定位 2.1、定位問題程序 使用top命令檢視資源佔用情況,發現pid為14063的程序佔用了大量的CPU
java程式設計之計算圓球體積(從命令窗輸入資料)
/* *已知圓球體積為4/3πr3,試編寫一個程式,輸入圓球半徑,經過計算輸出圓球的體積。 *從命令窗輸入 */ import java.util.Scanner; class volume{
Java web程式設計之基礎理論詳解(計算機網路基礎,HTTP請求的完成過程)
1.計算機網路基礎知識 首先我們需明確通訊系統互聯參考模型: OSI/RM模型與TCP/IP模型: OSI/RM模型是一種事實上被TCP/IP模型淘汰的模型,在當今世界上沒有大規模使用。當發生HTTP請求時,傳送方傳送的資料是由最頂
如何定位cpu佔用率高的java執行緒
檢視cup的使用情況,在Linux下可以使用 top 或者 htop命令 top -u ${使用者} -c top -u devops -c 在命令列提示符執行top命令,輸入大寫P,
網路故障之DHCP廣播風暴------運維上看交換機的CPU佔用率100%
1.廣播幀的格式是怎樣的???目的MAC 是什麼??? 2.交換機是如何處理廣播幀的???向所有埠轉發。 3.廣播幀所帶來的壞處是什麼???廣播幾乎佔用了子網內網路的所有頻寬。網路中不能長時間出現大量的 廣播幀否則就會出現所謂的“廣播風暴”每秒的廣播幀數在1000以上
java&android執行緒池-Executor框架之ThreadPoolExcutor&ScheduledThreadPoolExecutor淺析(多執行緒程式設計之三)
java多執行緒-概念&建立啟動&中斷&守護執行緒&優先順序&執行緒狀態(多執行緒程式設計之一)java多執行緒同步以及執行緒間通訊詳解&消費者生產者模式&死鎖&Thread.join()(多執行緒程式設計之二)
C++程式設計中,利用WINDOWS API獲得系統狀態資訊[CPU佔用率,硬碟使用情況,記憶體使用情況]
#include <Ice/Ice.h> #include <iostream> #include <GetWinSysState.h> #include <Winbase.h> #include <conio.h>
minerd和wnTKYg程序(病毒)--被攻擊CPU佔用率達到100%
今天登入伺服器感覺伺服器特別的慢。結果檢視發現有兩個程序佔用CPU100%了,一個是minerd一個是wnTKYg。如果大家遇到請小心。 檢視伺服器各個程式佔用資源量 [root@iZ2z
降低指定程序的CPU佔用率(適合遊戲多開)
應用場景舉例 遊戲多開,比如《天書世界》網頁遊戲,單開佔用CPU30%左右;最小化能夠降低到10%以下。 如果多開,那麼CPU就是疊加累計,非常佔用CPU資源,而且掛機嚴重影響CPU溫度。
Java併發程式設計之執行緒管理(基本執行緒同步3)
(上一節的繼續) 2.2 使用Lock機制 Java提供了另外一種機制來同步程式碼塊。它是比synchrozied關鍵字更為強大且彈性的機制。它是基於鎖介面和實現了這個介面的類
Java併發程式設計之執行緒管理(高階執行緒同步7)
3執行緒同步實用程式 在這一節中,我們將討論如何使用高級別機制去獲得多執行緒的同步(synchronized)。這些高級別機制有下面幾種: Ø 訊號(Semaphores):一個訊號就是一個計數