![](/img/trans.png)
[英]How can I get the CPU usage of a process with “tasklist” in Windows
[英]How can I limit the CPU usage?
如何使用此代碼為Java游戲限制CPU使用率? 我認為一種方法可能是使用Thread.sleep()
但Thread.sleep()
是我可以計算時間或類似的時間。 有人可以幫幫我嗎?
public void run(){
this.requestFocus();
long lastTime = System.nanoTime();
double amountOfTicks = 60.0;
double ns = 1000000000 / amountOfTicks;
double delta = 0;
long timer = System.currentTimeMillis();
int frames = 0;
while(isRunning){
long now = System.nanoTime();
delta += (now - lastTime) / ns;
lastTime = now;
while(delta >= 1){
tick();
delta--;
}
render();
frames++;
if(System.currentTimeMillis() - timer > 1000){
timer += 1000;
frames = 0;
}
}
stop();
}
除了缺少部分之外,這看起來非常簡單。 考慮您要以某個固定速率進行更新。
while(isRunning){
tick();
render();
long now = System.nanoTime();
double delta = now - lastTime;
double remaining = delta - ns;
if(remaining>1000){
try{
Thread.sleep((int)(remaining/1000));
} catch(InterruptedException e){
throw new RuntimeException(e);
}
}
frames++;
lastTime = System.nanoTime();
if(System.currentTimeMillis() - timer > 1000){
timer += 1000;
frames = 0;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.