gpt4 book ai didi

java - 与 Thread.sleep 相比,new Thread().sleep 在 CPU 和内存利用率方面有多差?

转载 作者:行者123 更新时间:2023-12-02 07:47:08 24 4
gpt4 key购买 nike

我知道应该在静态上下文中访问 sleep 。然而,我需要更多的意见,以便我可以向管理层辩护。我现在处理的大多数遗留代码都使用 new Thread().sleep 而不是 Thread.sleep。

这有多糟糕?

for (int c = 0; c < 5; c++) {
new Thread().sleep(5000);
}

与此相比?

for (int c = 0; c < 5; c++) {
Thread.sleep(5000);
}

编辑:

    final long start = System.currentTimeMillis();
System.out.println("Total memory: " + Runtime.getRuntime().totalMemory());
System.out.println("Free memory: " + Runtime.getRuntime().freeMemory());
System.out.println("===========================");
for (int c = 0; c < 5; c++) {
new Thread().sleep(5000);
System.out.println("Used memory: " + (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()));
System.out.println("===========================");
}
System.out.println("Total memory: " + Runtime.getRuntime().totalMemory());
System.out.println("Free memory: " + Runtime.getRuntime().freeMemory());
System.out.println("===========================");
System.out.println("Time elapsed: " + (System.currentTimeMillis() - start) + " milliseconds");

结果(new Thread().sleep):

Total memory: 5177344
Free memory: 4990904
===========================
Used memory: 186440
===========================
Used memory: 205136
===========================
Used memory: 205136
===========================
Used memory: 205136
===========================
Used memory: 205136
===========================
Total memory: 5177344
Free memory: 4972208
===========================
Time elapsed: 24938 milliseconds

结果(Thread.sleep):

Total memory: 5177344
Free memory: 4990904
===========================
Used memory: 186440
===========================
Used memory: 186440
===========================
Used memory: 204848
===========================
Used memory: 204848
===========================
Used memory: 204848
===========================
Total memory: 5177344
Free memory: 4972496
===========================
Time elapsed: 24938 milliseconds

最佳答案

这只是文盲编程,就这么简单。同样适用于以这种方式调用任何静态方法,它不限于 Thread.sleep()。它会带来毫无意义的空间和时间成本,但更糟糕的是,它暴露了程序员的主要概念误解。我不会花太多精力去修复所有的问题,但我肯定会做一些对相关人员进行再教育的事情。

关于java - 与 Thread.sleep 相比,new Thread().sleep 在 CPU 和内存利用率方面有多差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5216781/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com