2015-11-11 35 views
0

不太清楚正確的方式來問這個問題,但我有時循環減慢,同時它打印變量,然後加速回升到它本來打算在原來的速度。我知道的System.out.println確實減慢循環時間,但它是什麼影響了節目的主要問題,因爲它沒有這個隨機,不只是在一個時間點,因爲我已經重新運行環多倍。我不認爲這必然是一個代碼問題,但這裏是我到目前爲止有:爲什麼我的循環加速並隨機放慢?

public class Earth 
{ 
    public static void main(String[] args) 
    { 
     Person[] people = new Person[50000]; 
     for (int i = 0; i < people.length; i++) 
     { 
      people[i] = new Person(); 
      people[i].initializeHuman(); 
      System.out.println("Person[" + i + "] initialized"); 
     } 
    } 
} 

人在這種情況下是多個類的擴展,人們是通過主創建的對象,包含多個類的擴展。

的放緩在循環(每個I運行時間)的迭代的不同實例隨機出現,我想知道是否有人對這個問題,什麼問題是以前的經驗。我問這個問題的主要原因是因爲我之前在學校計算機上遇到過同樣的問題,但打印了一個素數列表(它會隨機減速而不是速度恢復到正常速度)。

這是initializeHuman,它幾乎只是在我創建的不同類別中設置值:

public void initializeHuman() 
{ 
    setTimeUntilTired(57600); 
    setCurrentTimeUntilTired(0); 
    setTimeAlive(9460); 
    setTimeToLive(252288); 
    setHeight(68); 
    setWeight(170); 
    setAthleticism(4); 
    setIsDressed(true); 
} 
+0

是什麼方法'initializeHuman'嗎? –

+0

我會將它貼在底部。 –

+0

那麼如果這些設置方法只是在您的類屬性上設置值,而沒有進行任何計算,您所遇到的是由Operatiom系統管理的處理器優先級。 –

回答

5

有很多可能的原因會導致這種情況發生。根據您提供的信息,我最好的猜測是,您機器上的某些其他進程或進程需要資源,導致CPU使用率在運行該程序時激增。

相關問題