强制 Renderscript 在 CPU 或 GPU 上运行(至少用于性能调整目的)

2024-01-02

我有几个basic算法(DCT/IDCT 和其他一些)在 Nexus 10 上移植并工作(至少在功能上符合预期)。由于这些算法是首次实现,因此它们的执行时间目前已达到几秒,这是可以理解的。

然而,考虑到 Renderscript 的架构,我发现这些算法在 CPU 或 GPU 上运行,具体取决于其他并行应用程序活动。例如,在我的应用程序中,有一个图像滚动视图,该视图上的任何活动实质上都会将渲染脚本执行推送到 CPU。如果没有活动,算法将在 GPU 上运行。我通过 ARM-DS5 Mali/A15 跟踪实时看到这一点。

这种情况本身就是调试/调整噩梦,因为算法在 CPU(双核)与 GPU(Mali)上运行时的性能增量约为 2 秒,因此很难衡量我所获得的性能改进在我的算法代码上做。

有办法解决这个问题吗?一种可能的解决方案是至少有一个调试可配置选项来选择渲染脚本代码的目标类型(ARM、GPU)?


adb shell setprop debug.rs.default-CPU-driver 1

这将强制执行在参考 CPU 实现上运行。没有相当于将事情强制到 GPU 的方法,因为许多条件可能导致运行时无法做到这一点。

同样有用的是:

adb shell setprop debug.rs.max-threads 1

这将要使用的 CPU 核心数量限制为 1(或您为设备的 CPU 数量设置的任何其他值)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

强制 Renderscript 在 CPU 或 GPU 上运行(至少用于性能调整目的) 的相关文章

  • 如何捕获 Runnable 中的封闭范围

    我正在尝试对 a 进行一系列更新HandlerThread使用下面的类 但我有几个关于变量捕获在 Java 中如何工作的问题 1 Is ret通过引用从封闭范围捕获 2 Does this参考Runnable 或者是从封闭范围捕获的 bon
  • 是否仍然建议使用 AsyncTask 在后台加载 listView 项目?

    背景 我听说有一些在后台加载数据的新解决方案比 AsyncTask 更值得推荐 例如loaders http developer android com reference android content Loader html 问题 As
  • 无法禁用 Firestore 中的离线数据

    从我的数据中删除数据后Firestore Database 这需要我的Android app一段时间后才意识到数据已被删除 我认为这是由于自动数据缓存而发生的 我的应用程序与离线使用无关 我想禁用此功能 我已将其添加到我的自定义中Appli
  • 在Android中打开浮动菜单(上下文菜单)?

    我创建了一个新菜单 名为 drmenu xml 当我按下菜单按钮时它可以正常工作 但是当用户按下按钮时我需要打开上下文菜单 下面的代码按钮只显示一个吐司 这是我的 xml 布局
  • android studio更新到3.0后任务执行失败

    当我更新 Android Studio 3 0 时 出现错误 unable to merge with dex 然后我添加了mutiDexEnabled true并且还添加了com android support multidex 1 0
  • XAMARIN - 添加来自 youtube 的视频

    我搜索如何从 youtube 添加视频的信息 例如 我想从一些 YouTube 链接添加视频 我认为它应该在网络视图中 但我需要一些详细信息 因为我找不到有关我的问题的任何信息 您可以使用 webview 播放 youtube 视频 str
  • android新手需要了解“?android:attr/actionBarSize”

    我正在经历拉尔斯 沃格尔的教程 http www vogella com articles AndroidFragments article html在使用 Fragments 时 我遇到了以下代码 android layout margi
  • 通过 Intent 从文件管理器中选择文件

    我想做的 我想获取文件字符串形式的路径 我通过 Android 文件管理器选择该路径 我拥有的 Intent intent new Intent Intent ACTION GET CONTENT intent setType startA
  • 按钮上方带有文本的单选按钮

    我是 Android 新手 我需要在我的活动中添加单选按钮 但我需要将文本放在项目符号按钮的顶部 请提供任何帮助 我发现了以下内容 尽管我不明白 drawable in 选择器和 style Tab 样式是什么 顶部带有文本的单选按钮 ht
  • 通过覆盖滑动调整图像大小不会调整图像大小

    我在用着Glide下载并显示图像 但是 当我尝试调整图像大小时 它不会这样做 我得到随机大小 或者可能是图像的实际大小 这是我用于通过 Glide 加载的代码 Glide with context load file getUrl asBi
  • toArray 与预先确定大小的数组

    使用时ar toArray new String ar size 安卓工作室3 2 1警告预先确定大小的数组并建议空数组 有两种方式将集合转换为数组 使用 预先确定大小的数组 如 c toArray new String c size 或使
  • 无法在 Android Studio 中运行项目

    当我尝试在 Android Studio 中运行我的项目时 我收到以下错误消息 Execution failed for task CricHQ dexDebug gt com android ide common internal Log
  • 拥有可重用对话框的最佳方法是什么?

    在 Android 中创建可重用对话框的最佳方法是什么 阅读通过对话框开发指南 http developer android com guide topics ui dialogs html 我知道我可以使用AlertDialog Buil
  • 应用程序运行时相对布局中的元素显示不同

    我有一个ListView在片段内创建 并且它有一个搜索过滤器 问题是 XML 布局在 android studio 中显示正常 但在模拟器或手机中运行时 它显示不同 与我对齐时不正确 并且当我单击SearchView它位于选项卡导航下方 谁
  • 调用属于Fragment的Activity的函数

    我正在与多个Fragments在 Android 下 我对如何从嵌入式应用程序发送和接收数据感到困惑 为了简单的解释 我有一个ListFragment and a MapFragment使用解释的方法here https stackover
  • 尝试重新打开已关闭的对象:sqlitequery

    所以本质上我查询数据库两次 我不明白这个错误真正来自哪里 因为我没有在任何地方关闭数据库 返回错误的代码是这样运行的 我查了一下 刚刚看到一个像我这样的案例 BeaconHandler pullAllDB new BeaconHandler
  • 如何以相同的意图从相机获取全尺寸图片和缩略图

    我一直需要找到这个问题的解决方案 我已经从这个社区搜索并测试了许多解决方案 但任何人都适合帮助我 我有两个活动 第一个活动拍摄一张照片并将其发送到另一个活动 该活动有一个 ImageView 来接收该照片 直到这里我遇到问题 以及一个在数据
  • 如何在 Android 的应用程序中使用 LDAP 身份验证?

    我想在我们的应用程序中添加 LDAP 身份验证 我在 Github 上搜索并找到了两个应用程序 但它们无法连接到服务器 通过ldap连接服务器的必要条件是什么 查看 UnboundID SDK 他们有一个适用于 Android 的套件 该应
  • Android:在surfaceview上实现admob

    我有一个使用 SurfaceView 的小游戏形式的活动 下面是代码片段 我很困惑如何在 SurfaceView 上实现 admob 请建议 public class DroidzActivity extends Activity priv
  • 找不到与给定名称“@style/Theme.AppCompat.Light”匹配的资源

    我已经研究这个问题几个小时了 从 github 下载存储库后 任何 xml 文件中的唯一错误是 No resource found that matches the given name style Theme AppCompat Ligh

随机推荐

  • 同一模型的多个关联

    我有两个类 我想指定如下 class Club lt ActiveRecord Base belongs to president class name gt Person foreign key gt president id belon
  • 将 PyQt 转换为 PIL 图像

    我在 QImage 中有一个图像 我想在显示它之前在 PIL 中处理它 虽然 ImageQT 类允许我将 PIL 图像转换为 QImage 但似乎没有任何东西可以从 QImage 转换为 PIL 图像 我使用以下代码将其从 QImage 转
  • 在 Django 中加载静态文件

    我尝试了大约 2 个小时来找出为什么我的 django 静态文件没有加载 这是我在 settings py 中的静态文件配置 STATIC URL static MEDIA URL media STATICFILES DIRS os pat
  • 如何将 Angular 组件完全加载到 iframe 中?

    我正在尝试将一个复杂的组件加载到 iframe 称为其他组件的组件 我已经使用它来加载它ComponentFactoryResolver但没有任何风格 来自这个主题 我们如何将角度组件的样式加载到 iframe 中 https stacko
  • MongoDB 文本索引错误:不支持语言覆盖

    我使用的是2 6 1版本 我正在尝试创建文本索引 但出现错误 connectionId 4932 err language override unsupported en US code 17262 n 0 ok 1 正在搜索的文档有一个值
  • 合并 k 个排序链表 - 分析

    我正在考虑针对一个问题的不同解决方案 假设我们有 K 个已排序的链表 并且我们将它们合并为一个 所有这些列表总共有 N 个元素 众所周知的解决方案是使用优先级队列并从每个列表中弹出 推送第一个元素 我可以理解为什么它需要O N log K
  • Python在for循环中创建对象

    我有一个类来分配一些参数 class body def init self name number L self name name self number number self L L 我想将这些参数分配给 10 个几乎相等的物体 例如
  • Clojure 从 zipmap 中获得最高价值

    所以我在这里得到了我建议的邮政地图 它工作得很好 正如你所看到的 我已经加载了数据 这就是 repl 中的样子 非常完美 这是地图 Year 2020 Day 27 January 59 February 38 Year 2020 Day
  • SSIS Foreach 循环文件夹作为变量

    我需要将 Foreach 循环中的文件夹设置为可变位置 我尝试将位置添加到我的包配置中 它的表现就像它工作一样 但是当我打开配置文件时 它不在那里 我将其设置为 Foreach File Enumerator 并对路径进行硬编码 并检索完全
  • Laravel 9 - 在 artisan 路线中显示中间件:列表

    如何显示 Laravel 路由中使用的中间件 php artisan route list 我找到了显示方式 只需添加详细选项 php artisan route list v
  • Windows DPI 设置影响 Graphics.DrawString

    我已经创建了一个新的 Bitmap 对象 现在想要使用 GDI 向其绘制一些文本 所以我调用 Graphics DrawString 问题是字符串的大小取决于 Windows 7 的 DPI 设置 有什么方法可以使我的文本绘制独立于 Win
  • 在 Django 之外运行 Python 脚本

    我有一个使用 Django ORM 功能以及其他外部库的脚本 我想在 Django 之外运行该脚本 即从命令行执行 编辑 目前 我可以通过导航到 URL 来启动它 我该如何为此设置环境 最简单的方法是将脚本设置为manage py子命令 这
  • ::伪元素堆叠顺序问题之前

    静态定位时 before 伪元素堆叠 z index 在子元素的内容之前 但在子元素的背景之后 任何人都可以解释为什么甚至是如何发生这种情况 或者这是否是所有主要浏览器都存在的问题 div div
  • 如何通过.net core使用微软报告服务

    我有兴趣在我的 vue js net core 项目中使用报告服务 我不需要reportviewer 控件 只需执行适当的代码来远程处理它 以将其作为字节流返回到 pdf 中 我以前的代码在 ASP net MVC angularjs 项目
  • Angular.js 数据访问器

    我正在尝试学习 Angular 但我陷入了以下困境 我有 PHP 背景 主要使用 Laravel 在 Laravel 中您可以在模型中使用访问器 所以如果你有一个模型User 其中有一个firstname and lastname 您可以创
  • 处理无序执行

    我最近偶然发现了这个维基百科文章 http en wikipedia org wiki Memory barrier 根据我的多线程经验 我意识到程序能够随时在线程之间切换线程而导致的众多问题 然而 我从来不知道编译器和硬件优化可以以保证适
  • 将 SecureString 放入 PasswordBox

    我有一个现有的安全字符串 http msdn microsoft com en us library system security securestring 28v vs 110 29 aspx我想放入一个密码盒 http msdn mi
  • Ruby on Rails 每次都会触发序列化属性的更新

    我有一个带有名称和设置的简单用户模型 用户每次保存后 AREL 都会对设置列执行更新 例如 user User find by name kevin user save 0 3ms UPDATE users SET updated at 2
  • VSCode 自动完成函数 * 和方法 * 括号 (js/ts)

    这是一个超集VSCode 自动补全函数时添加括号 https stackoverflow com questions 55533379 vscode add parentheses when automcompleting function
  • 强制 Renderscript 在 CPU 或 GPU 上运行(至少用于性能调整目的)

    我有几个basic算法 DCT IDCT 和其他一些 在 Nexus 10 上移植并工作 至少在功能上符合预期 由于这些算法是首次实现 因此它们的执行时间目前已达到几秒 这是可以理解的 然而 考虑到 Renderscript 的架构 我发现