google-chrome - Chrome的奇怪 `gpu-preferences`

标签 google-chrome encoding gpu

当执行 ps -ef在我的机器上,我发现了一个非常奇怪/特殊的命令行参数 chrome :

501   536   493   0 二11上午 ??       13:11.48 /Applications/Google Chrome.app/Contents/Versions/69.0.3497.100/Google Chrome Helper.app/Contents/MacOS/Google Chrome Helper --type=gpu-process --field-trial-handle=3535656472344341962,3817030915272013891,131072 --gpu-preferences=KAAAAAAAAACAAAAAAQAAAAAAAAAAAGAAAAAAAAAAAAAIAAAAAAAAADgBAAAmAAAAMAEAAAAAAAA4AQAAAAAAAEABAAAAAAAASAEAAAAAAABQAQAAAAAAAFgBAAAAAAAAYAEAAAAAAABoAQAAAAAAAHABAAAAAAAAeAEAAAAAAACAAQAAAAAAAIgBAAAAAAAAkAEAAAAAAACYAQAAAAAAAKABAAAAAAAAqAEAAAAAAACwAQAAAAAAALgBAAAAAAAAwAEAAAAAAADIAQAAAAAAANABAAAAAAAA2AEAAAAAAADgAQAAAAAAAOgBAAAAAAAA8AEAAAAAAAD4AQAAAAAAAAACAAAAAAAACAIAAAAAAAAQAgAAAAAAABgCAAAAAAAAIAIAAAAAAAAoAgAAAAAAADACAAAAAAAAOAIAAAAAAABAAgAAAAAAAEgCAAAAAAAAUAIAAAAAAABYAgAAAAAAABAAAAAAAAAAAAAAAAUAAAAQAAAAAAAAAAAAAAALAAAAEAAAAAAAAAAAAAAADAAAABAAAAAAAAAAAAAAAA0AAAAQAAAAAAAAAAAAAAAPAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAABIAAAAQAAAAAAAAAAAAAAATAAAAEAAAAAAAAAABAAAABQAAABAAAAAAAAAAAQAAAAsAAAAQAAAAAAAAAAEAAAAMAAAAEAAAAAAAAAABAAAADQAAABAAAAAAAAAAAQAAAA8AAAAQAAAAAAAAAAEAAAAQAAAAEAAAAAAAAAABAAAAEgAAABAAAAAAAAAAAQAAABMAAAAQAAAAAAAAAAQAAAAFAAAAEAAAAAAAAAAEAAAACwAAABAAAAAAAAAABAAAAAwAAAAQAAAAAAAAAAQAAAANAAAAEAAAAAAAAAAEAAAADwAAABAAAAAAAAAABAAAABAAAAAQAAAAAAAAAAQAAAASAAAAEAAAAAAAAAAEAAAAEwAAABAAAAAAAAAABgAAAAUAAAAQAAAAAAAAAAYAAAALAAAAEAAAAAAAAAAGAAAADQAAABAAAAAAAAAABgAAAA8AAAAQAAAAAAAAAAYAAAAQAAAAEAAAAAAAAAAGAAAAEgAAABAAAAAAAAAABgAAABMAAAAQAAAAAAAAAAcAAAAFAAAAEAAAAAAAAAAHAAAACwAAABAAAAAAAAAABwAAAA0AAAAQAAAAAAAAAAcAAAAPAAAAEAAAAAAAAAAHAAAAEAAAABAAAAAAAAAABwAAABIAAAAQAAAAAAAAAAcAAAATAAAA --service-request-channel-token=17030867567105907743

enter image description here

出于好奇,我找到了 source of chromium ,这看起来很正常:
namespace gl {
// On dual-GPU systems, expresses a preference for using the integrated
// or discrete GPU. On systems that have dual-GPU support (see
// GpuDataManagerImpl), resource sharing only works between
// contexts that are created with the same GPU preference.
//
// This API will likely need to be adjusted as the functionality is
// implemented on more operating systems.
enum GpuPreference {
  GpuPreferenceNone,
  PreferIntegratedGpu,
  PreferDiscreteGpu,
  GpuPreferenceLast = PreferDiscreteGpu
};
}  // namespace gl

那么,这个参数( KAAAA.... )是模糊的还是 GPU 的某种编码?姓名?为什么会有这么奇怪的编码?

最佳答案

每当您看到包含大量 AAAA 的编码时在其中,您可以打赌它是二进制的 Base64 编码,其中包含许多空值。

>>> a=b'KAAAAAAAAAQAAAAAAAAAAAGAAAAAAAAAAAAAIAAAAAAAAADgBAAAmAAAAM=='
>>> base64.b64decode(a).hex()
'2800000000000004000000000000000001800000000000000000002000000000000000e004000098000000'

(更一般地说,任何同时使用大写和小写字母的编码都很可能是 Base64。例如,与 SHA1 的十六进制相比,通常在 Base64 中给出 SHA256。)

这对应这个接口(interface):https://cs.chromium.org/chromium/src/gpu/ipc/common/gpu_preferences.mojom

线路格式似乎没有大量记录,所以如果你想解释这个值,你最好检查一下 Chrome 树并构建绑定(bind)生成器。 https://chromium.googlesource.com/chromium/src/+/master/mojo/public/tools/bindings/README.md

关于google-chrome - Chrome的奇怪 `gpu-preferences`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52677555/

相关文章:

javascript - 在 Google Chrome 中使用 javascript 加载本地 xml 文件

python - 使utf8在文件中可读

python - 如何通过管道将 Unicode 传输到 PowerShell 中的 native 应用程序

video - 如何在 macOS 上使用带有 gpu 支持的 ffmpeg

google-chrome - 有效 HTTPS 请求的 SSL 连接错误

javascript - 我们如何在谷歌浏览器的每一页上打印表格标题

html - 当存在 UTF-8 字符编码时,显示引号的问号图标

c++ - 如何正确设置 SSBO 的提示以从着色器和 cpu 读取和写入?

python - 如何在 GPU 上使用 Keras?

javascript - 破坏 Chrome 缓存以进行浏览器同步重新加载