java - 为什么我的循环会随机加速和减速?

标签 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");
        }
    }
}

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

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

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

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

最佳答案

发生这种情况的可能原因有很多。根据您提供的信息,我的最佳猜测是您计算机上的某些其他进程或多个进程需要资源,导致您运行程序时 CPU 使用率激增。

关于java - 为什么我的循环会随机加速和减速?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33641998/

相关文章:

java - CutyCapt 的替代品

java - PostgreSQL 和 hibernate 按版本号排序 1.1.1.1.1

java - Android Studio : 'Instant Run' grayed out for all my projects

javascript - 在 DevTools 中读取 Chrome 帧率结果

java - 使用 JSTL 编写静态内容

java - Servlet 启动外部进程

WPF 应用程序行为取决于 Windows 用户访问级别

javascript - 在最短的时间内从数据库中获取数据

performance - 现代浏览器是否仍然限制并行下载?

performance - Neo4j 遍历性能