java - CPU 资源和时钟周期 : System. out.println 或递增标志

标签 java android optimization micro-optimization

为了调试我们的 Android 代码,我们放置了 System.out.println(string) 它将让我们知道一个函数被调用了多少次。另一种方法是放置一个标志并在每次函数调用后继续递增它。然后在最后通过 System.out.println(...) 打印标志的最终值。 (实际上在我的应用程序中该函数将被调用数千次)

我的问题是:就CPU 资源时钟周期 而言,哪个更轻:增量操作还是 System.out.println?

最佳答案

递增将变得非常、非常更有效率——尤其是当您实际上有任何地方可以输出该输出时。想想 System.out.println 与递增变量所需的所有操作。当然,影响是否真的显着是另一回事 - 如果您的方法已经做了很多工作,那么 System.out.println 调用可能实际上并没有太大的区别。但是,如果您只想知道它被调用了多少次,那么保留一个计数器比查看日志更有意义,IMO。

我建议使用 AtomicLongAtomicInteger而不是仅仅拥有一个原始变量,这样您就可以获得简单的线程安全性。

关于java - CPU 资源和时钟周期 : System. out.println 或递增标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10459976/

相关文章:

java - 在java中,如何将一个项目导入到另一个项目中而不将它们放在同一个(Eclipse)工作区中?

java - 枚举的 values() 方法访问级别

java - 为什么不应该因为你 "simply prefer to program in C/C++"而用 C/C++ 编写 Android 应用程序?

android - 谷歌.android.gms :play-services-oss-licenses not working after obfuscation

java - 将 java 参数从 String 转换为 LinkedList

android - 通用窗口绘制图形并即时保存图像

java - 安卓游戏开发结构

c# - 这个 LINQ 性能从何而来?

c++ - 设计一个快速的 "rolling window"文件阅读器

java - 优化 Java 图形