由于每个帧的GC Malloc调用,Camera.Preview回调效率低下?

问题描述:

当Camera.preview回调正在运行时,每个帧都会调用GC Malloc。我认为这增加了我的帧速率的缓慢。由于每个帧的GC Malloc调用,Camera.Preview回调效率低下?

有没有人对减少这些调用的方法有任何建议。我试过搜索谷歌组,并且似乎没有太多的回应,所以我想从在他们的应用程序中构建和使用相机预览的人那里获取信息。

当GC Malloc被调用时,似乎每次都会使用一段新的数据来保存帧。这可以预先定义? - 这是什么callbackwithBuffer呢?我很难得到我的头,并已无法正确实施缓冲区的回调,所以任何帮助如何做到这一点,将不胜感激。

也可以有人完全解释什么是在相机预览运行时与帧的内存发生。

谢谢先进。

您遇到的问题是Android的旧版本中的一个问题,其中分配内存和在短时间内收集垃圾导致性能瓶颈。

说明可以在这里找到:http://code.google.com/p/android/issues/detail?id=2794

您的问题可以通过使用一些隐蔽的方法来固定。但是,您需要使用反射来公开它们(错误链接还有其他示例)。

如果我正确记得这个问题已经在Froyo修复。

+2

那么......这个bootleneck也出现在我的Android 4.3和4.4(Google Nexus 4)中......我可以在没有任何处理的情况下使用opencv达到10 fps左右,只是响应recived帧。也许我应该尝试setPreviewWithBuffer ...你怎么看? –