我一直在尝试使用Renderscript一段时间。我编写了小型测试内核,对来自本地存储的图像进行直方图,过滤等,以验证其功能。如果我得到这个操作序列的跟踪 - 在8MP图像大小 - 到目前为止Allocation.createFromBitmap
调用占用的时间最多。我看到这个调用的时间大约为22毫秒,而我的内核运行时间大约为1毫秒。
结果,RS提供的增益或多或少地被这种开销完全消除了。这是不可避免的还是我遗漏了一些基本的东西?
谢谢,
阿克沙伊
答案 0 :(得分:1)
对此的基本解决方案是“USAGE_SHARED”。您正在测试哪个API版本?
新的(API 18+)RS实现将默认使用此标志创建分配。您仍然应该调用copyTo / From,但他们可能(应该)变成NOP。硬件驱动程序仍在改进对此使用标记的支持,并且在某些情况下会回退到实际副本。随着时间的推移,您应该会看到复制开销在较新的设备上消失。