1

我正在使用 google 的 firebase 进行对象检测。你运行它是这样的:

Task<List<FirebaseVisionFace>> result =
    mDetector.detectInImage(FirebaseVisionImage.fromBitmap(dcBitmap))
                                        .addOnSuccessListener(  //etc, etc

现在我试图了解这个调用对我的应用程序帧速率有多大影响,因为它发生在相机循环中。我尝试在它周围放置 TimmingLogger 拆分,但它告诉我调用在大约 1 毫秒内返回。但很明显,如果我注释掉检测器,我的 fps 会上升很多。所以我很好奇是否有人知道这段代码是否实际上是在单独的线程上调用的?或者我是否以某种方式中断了我的线程的操作并让它运行这个检测?我想我想了解工作在哪里完成以及如何衡量需要多少时间。

4

1 回答 1

2

检测器本身在单独的线程中运行,但成功侦听器随后会在主/UI 线程上再次调用。

于 2020-05-04T23:47:28.917 回答