https://www.coder.work/article/7217456

我注意到在使用 http://www.vsynctester.com 时 CefSharp.WinForms.Example 和 CefSharp.Wpf.Example 之间存在非常重要的性能差异(以 FPS 计)

在我的显卡控制面板和 CefExample Init() 中的设置中关闭 VSync 时

settings.CefCommandLineArgs.Add("disable-gpu-vsync", "0");

对于 CefSharp.WinForms.Example,我得到大约 500 FPS(稳定) 对于 CefSharp.Wpf.Example,我几乎无法达到 30 FPS

我知道 Wpf 使用离屏渲染,但如何解释相同网页的巨大性能差异?

我使用的是装有 Win 8.1 和 NVidia GT 750M 显卡的 MacBook Pro。 CefSharp 版本为 8755a9496ffbd5f21bc6ef062bce687a22d83938(2015 年 3 月 1 日)和 Cef 版本 3.2171.1979

最佳答案

The maximum rate in frames per second (fps) that CefRenderHandler::OnPaint will be called for a windowless browser. The actual fps may be lower if the browser cannot generate frames at the requested rate. The minimum value is 1 and the maximum value is 60 (default 30).

CEF 文档的直接引述参见 http://magpcss.org/ceforum/apidocs3/projects/%28default%29/_cef_browser_settings_t.html#windowless_frame_rate

整个过程更受 CPU 限制而不是 GPU 限制。缓慢的部分是位图缓冲区在显示之前被复制到内存中。 CEF 还支持目前尚未实现的 DirtyRects,因此即使是很小的图形更改也会强制整个屏幕重绘。

当上游 CEF 问题 1006 得到解决后,我们就可以考虑进行更多改进。 https://code.google.com/p/chromiumembedded/issues/detail?id=1006&q=label%3AOSR

cefsharp - WinForms 和 Wpf 示例之间的巨大性能差异的更多相关文章

  1. CefSharp.WinForms

    CefSharp.WinForms 一.  前言 银医通项目,现在另外一家医院需要上系统,所以项目需要重新搭建,由于这家医院的His系统和另外一家医院的His系统不同,界面风格也不一致,所以重新搭建, ...

  2. WPF自学入门(八)WPF窗体之间的交互

    今天我们一起来看一下WPF窗体之间的交互-窗体之间的传值.有两个窗体,一个是父窗体,一个是子窗体.要将父窗体的文本框中的值传递给子窗体中的控件.我们该怎么实现? 接下来我们一起来实现窗体之间的传值,在 ...

  3. 给WPF示例图形加上方便查看大小的格子之完善版本

    原文:给WPF示例图形加上方便查看大小的格子之完善版本 去年10月份, 我曾写过一篇"给WPF示例图形加上方便查看大小的格子"的BLOG(http://blog.csdn.net/ ...

  4. 给WPF示例图形加上方便查看大小的格子

    原文:给WPF示例图形加上方便查看大小的格子 有时,我们为了方便查看WPF图形的样式及比例等,需要一些辅助性的格线,置于图形.图像的背景中. 比如下图,就是为了更清晰地查看折线的图形,我们画了用于标示 ...

  5. Windows Community Toolkit 3.0 新功能 在WinForms 和 WPF 使用 UWP 控件

    本文告诉大家一个令人震惊的消息,Windows Community Toolkit 有一个大更新,现在的版本是 3.0 .最大的提升就是 WinForm 和 WPF 程序可以使用部分 UWP 控件. ...

  6. C++编译器之间的不同性能

    C++编译器之间的不同性能 编译器就是将“高级语言”翻译为“机器语言(低级语言)”的程序.一个现代编译器的主要工作流程:源代码 (source code) →预处理器 (preprocessor) → ...

  7. 让VS2019支持.NET Core WinForms和WPF设计器的临时办法(比微软给出的办法更方便)

    参考以下代码片段,给项目添加NET Framework目标框架,切换到NET472运行时重新生成项目,然后打开设计器界面. 如果遇到设计器报错,尝试以NET472运行时为目标重新生成项目,并重新打开V ...

  8. WinForm 与WPF 窗体之间的想到调用

    先放置一个容器控件,并设计 好WinForm(或WPF)窗口 winform 调用 wpf ElementHost el = new ElementHost(); el.Dock = DockStyl ...

  9. wpf viewmodel之间的通信

    使用Prism第三方框架实现ViewModel之间的通信 创建类继承自UnityBootstrapper public class Bootstrapper : UnityBootstrapper { ...

  10. 让VS2019支持.NET Core WinForms和WPF设计器的临时办法(转)

    .net core 3.0 Preview 6,vs2019 16.1.4 暂时还不支持Winform designer 解决方案: 将Form1修改为其他名字 WinForm   编辑项目文件  加 ...

随机推荐

  1. Bootstrap Table强大的web数据表格渲染框架

    Bootstrap Table 是什么 ‌Bootstrap Table 是一个基于 Bootstrap 框架的开源插件,专为快速构建功能丰富.响应式的数据表格而设计.‌ 它支持排序.分页.搜索.导出 ...

  2. Springboot笔记<4>@Autowired和@Resource的区别

    @Autowired和@Resource的区别 @Resource 有两个常用属性name.type,所以分4种情况 指定name和type:通过name找到唯一的bean,找不到抛出异常:如果typ ...

  3. IDEA使用技巧以及常用快捷键

    Ctrl+N按名字搜索类 Ctrl+Shift+N按文件名搜索文件 Alt+F7查找类或方法在哪被使用: Ctrl+F/Ctrl+Shift+F按照文本的内容查找 : Ctrl+F是在本页查找,Ctr ...

  4. 好消息!数栈FlinkX技术团队将FlinkX开源项目同步推送到Gitee啦!

    数栈是云原生-站式数据中台PaaS,我们在github上有一个有趣的开源项目:FlinkX FlinkX是一个基于Flink的批流统一的数据同步工具,既可以采集静态的数据,比如MySQL,HDFS等, ...

  5. Go + WebSocket + Chrome Extension:基于真实浏览器环境的 cf_clearance 自动化获取方案

    前言 随着 Web 安全防护技术的演进,Cloudflare 等 CDN 服务商部署的反爬虫机制愈发复杂.传统的 HTTP 客户端库已无法有效应对基于 JavaScript 执行的挑战验证,而 Sel ...

  6. 浅谈开源在线客服系统与 APP 集成的技术方案与优劣势

    在为移动端 App 接入在线客服系统的过程中,我经历了长时间的技术选型探索.最初,我也曾被一些"技术理想主义"选项所吸引,比如让用户自己研发界面我提供 API 以获得最高自由度,或 ...

  7. 迁移git:gitlab->gitea

    本文目的:迁移gitlab代码到gitea. 一:创建一个组织: 二:创建git仓库 1:在主界面创建仓库:注意选择拥有者 创建git库需要注意拥有者选择创建的组织.不然后面git链接会出现用户名.其 ...

  8. 我在厂里搞wine的日子

    之前工作中搞过一段时间的wine,主要是解决一些第三方应用的安装或运行问题,后面好长时间没搞了,有次电脑出问题重装系统的时候整理文档,发现之前还写过一些日志,于是找时间把日志粗略整理了一下,分享出来供 ...

  9. CF559E Gerald and Path 题解

    CF559E Gerald and Path 很困难的 DP 题,状态不是很好想.对于这种线段覆盖类题目,显然先覆盖哪个线段没有影响,我们可以通过按照端点位置升序排序后按照顺序考虑,这样可能会有一些额 ...

  10. Codeforces Round #708 (Div. 2) ABC1C2题解

    A. Meximization 第i位优先放等于i-1的,没有的话就后面随便填了. view code #include<iostream> #include<string> ...