2015-11-11 5 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"); 
     } 
    } 
} 

Людей в этом случае является продолжением нескольких классов, и люди это объект, который создается главным, который содержит расширение нескольких классов.

Замедление происходит случайным образом в разных экземплярах итерации цикла (каждый раз, когда я запускаю его), и мне было интересно, имел ли кто-нибудь предыдущий опыт по этой проблеме и в чем проблема. Основная причина, по которой я задаю этот вопрос, - это то, что у меня была такая же проблема на школьном компьютере, но распечатала список простых чисел (она будет случайным образом замедляться, чем скорость, вплоть до нормальной скорости).

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

Существует много возможных причин, почему это произойдет. Мое лучшее предположение из предоставленной вами информации заключается в том, что на какой-то другой процесс или процессы на вашем компьютере были ресурсы, которые заставляли процессор использовать шип при запуске программы.

Смежные вопросы