为什么我的循环加速并随机减速?

时间:2015-11-11 00:04:40

标签: java performance

不太确定提出这个问题的正确方法,但我的循环有时会在打印变量时减慢速度,然后速度恢复到原来的速度。我知道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");
        }
    }
}

本例中的人是多个类的扩展,人是由main创建的对象,包含多个类的扩展。

在循环迭代的不同实例(每次我运行它)时随机发生减速,我想知道是否有人有过这个问题的经验以及问题是什么。我提出这个问题的主要原因是因为我之前在学校的计算机上遇到了同样的问题,但打印了一个素数列表(它会随机减速而不是速度恢复到正常速度。)

这是initializeHuman,它几乎只是在我创建的不同类中设置值:

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

1 个答案:

答案 0 :(得分:5)

为什么会发生这种情况有很多可能的原因。我从您提供的信息中得出的最佳猜测是,您运行该程序时,计算机上的某些其他进程或进程需要的资源会导致CPU使用率飙升。

相关问题