performance - Vulkan 是否适合使用尽可能少的资源的软件?
问题描述
我正在编写一个状态栏,它应该尽可能少地占用资源,即应该节省电力并且不会从更重要的进程中窃取 cpu-/io-/gpu-time 并将内存使用率保持在可接受的水平。我希望该栏主要呈现简单的形状、图标、文本,但透明度效果或彩虹效果应该是可能的。状态栏总是可见的,但大多数时候它不如用户实际看到的重要。
问题
Vulkan(或任何其他 gpu-api)是否比软件渲染器更符合我的要求?
考虑和产生的问题
如果我理解正确,软件渲染器必须将其帧上传到 gpu 以显示它们。只需直接使用 gpu 渲染即可消除数据副本。此外,一些渲染技术(例如透明度、模糊)在 gpu 上显然更有效。除了实现简单之外,还有其他原因导致 gui 程序通常更喜欢软件渲染吗?我可以想象,像 Vulkan 这样的 API 主要是为希望从尽可能多的计算机资源中受益的游戏引擎设计的,可能会在我的用例中产生过多的开销。
解决方案
我想说“不”。GPU 通常用于批量处理,而不是用于后台任务。
真正的答案是你必须衡量。而且您必须意识到存在硬件差异,因此即使它对您的 PC 有益,它也可能在其他人的 PC 上令人讨厌(耗尽电池,引起噪音等)。
推荐阅读
- wordpress-gutenberg - WP Gutenberg,删除核心面板选项?
- r - ggplot 不按值分隔 - 调用以数字开头的变量
- ruby-on-rails - Rails - 何时在代码/惯用的 Ruby/Rails 代码中使用 .reload
- c - 为什么有一个额外的“?” 执行C程序后显示(读取并显示txt文件)
- python - Python 输出到全屏,如基于终端的文本编辑器
- sql - 需要找到仍然不活跃的事件的开始和结束时间
- node.js - 使用 TypeOrm 和 Oracle 插入 Millon 数据
- flutter - 尝试从 Firestore 显示列表数据会导致颤动中的像素溢出
- python - 如何在python中绘图时设置x和y轴的值
- reactjs - Django Rest Framework - 将 S3 对象返回给客户端供用户下载