当没人听他们的输出时,打印功能是否使用CPU?

时间:2015-12-15 12:36:44

标签: android optimization android-ndk stdout logcat

我今天遇到了这个问题。 一般来说,使用大量的打印到屏幕或文件(即:stdout)。使用CPU并在某些情况下可以限制应用程序的速度。由于硬件的限制,这在移动设备中更为重要。

然而,OS /库如何处理没有人正在监听它的输出的情况?它会被调用和删除吗?不是吗?我可以想到许多可能发生这种情况的情况,因此可能浪费周期。

我可以给你2个我特别感兴趣的案例:

  1. Android NDK应用程序打印到std::cout
  2. Android应用程序(NDK或Java)打印到Logcat,但未连接adb
  3. 如果不是这样,我应该开始在我的JNI应用程序中删除打印到stdout,这对我来说是一项巨大的工作。

    谢谢!

1 个答案:

答案 0 :(得分:0)

是的,他们这样做,但并不多。这就是您可以连接设备并读取在连接发生之前创建的Logcat条目的原因。