簡體   English   中英

程序運行緩慢並隨着時間的推移降低性能

[英]Slow program and reducing performance over time

我的程序是一個Java游戲,涉及在用戶和AI之間輪流進行。 因此,在所有操作完成之后,我有一個無限的while循環,該循環僅在轉彎發生變化后才會中斷。 我只使用一個無限循環,因為我使用的是計時器,無法預測用戶何時結束回合。 但是我注意到我的程序隨着時間的推移會變慢,甚至單擊按鈕也無效。 是我的循環導致了這個嗎? 幫助將不勝感激。

while(true) {
    if(playerTurn % 2 == 1) {
        artificialIntelligence();
        break;
    }
}

沒有更多的代碼,很難確定問題的真正原因是什么。 但是,一個懷疑者可能是您堅持使用對象引用,而垃圾回收沒有回收它們。 嘗試使用Java探查器,它可以幫助您查明可能出現問題的確切位置。

如果您使用無限循環(在您的情況下為while循環),則該操作將連續執行; 因此減慢了您的應用程序。 因此,我建議將代碼分成兩個線程

第一個線程 -檢查用戶轉向事件。

第二線程 -做AI的事情。

一旦發生用戶事件,請停止線程並執行所需的操作。 這樣,您的代碼將永遠不會在任何時間被阻塞。 從而獲得更好的性能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM