在renderscript中,内核必须在单独的.rs
文件中定义,如下所示:
float __attribute__((kernel)) foo_1(uint32_t x) {
}
float __attribute__((kernel)) foo_2(uint32_t x) {
}
然后必须在主java文件中使用它,如下所示:
ScriptC_fileName tmp = new ScriptC_fileName(rs);
我想知道以下哪项是性能最好的编程实践以及原因。
.rs
文件中定义所有内核。.rs
文件。 答案 0 :(得分:2)
这真的是一个偏好和架构的问题。关注点分离:如果RS功能不相关,那么您可能不希望将其全部保存在一个.rs
文件中。
当您创建ScriptC
实例时,它正在创建Java端对象以及加载组件的本机/平台特定代码。因此,如果您在一个.rs
文件中包含所有内容,则可以加载当时未使用/不需要的内容。因此更大的内存消耗和可能的本机/平台资源消耗。
除了我已经描述的更大的资源使用量之外,它(通常)的处理性能应该没有重大影响。当然,这将取决于硬件和实现。如果由于加载了更低级别的代码(在DSP或GPU上),硬件细节会对处理性能产生影响,那么这就是特定于平台的问题。