首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在CEFSharp中优化WinForms以呈现大量应用程序(如THREEJS)?

如何在CEFSharp中优化WinForms以呈现大量应用程序(如THREEJS)?
EN

Stack Overflow用户
提问于 2022-06-15 22:32:37
回答 1查看 158关注 0票数 0

我开发了一个winforms,它向用户展示了一个使用3D呈现的web应用程序(使用了THREEJS)。问题是,并不是每个客户端都有足够好的CPU来使用这个应用程序。当通过浏览器访问应用程序时,应用程序在几乎每台计算机上都能顺利运行,但在通过winforms应用程序访问应用程序时却不是这样。这是每个程序的CPU使用情况:

在Google上运行时,同样的内容使用了2.3%的CPU,而运行CEFSharp的winforms应用程序则使用了92.7%的CPU。

这是我的winforms组件的代码:

代码语言:javascript
复制
namespace tissuewebs
{
    public partial class Form1 : Form
    {
        public ChromiumWebBrowser chromeBrowser;
           
        public Form1()
        {
            InitializeComponent();
            InitializeChromium();             
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            
        }

        private void InitializeChromium()
        {
            CefSettings settings = new CefSettings();
            settings.CefCommandLineArgs.Add("disable-features", "BlockInsecurePrivateNetworkRequests");
            settings.CefCommandLineArgs.Add("disable-gpu", "1");
            settings.RemoteDebuggingPort = 8088;
            settings.CachePath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\CEF";
            settings.PersistSessionCookies = true;
            CefSharp.Cef.Initialize(settings);

            chromeBrowser = new ChromiumWebBrowser("example.com")
            {
                Dock = DockStyle.Fill
            };
            this.Controls.Add(chromeBrowser);
        }
    }
}

是否有可能优化我的应用程序,使其使用更少的CPU?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-15 23:41:10

  • 首先需要启用GPU加速。在GPU加速禁用的情况下,CPU使用率将更高。

其次,

  • 使用64位版本来提高性能。您正在将作为64位进程运行的Chrome与32位应用程序进行比较。

  • 第三,您需要确保应用程序有一个具有兼容性条目的app.manifest。否则,性能将受到不利反应。

代码语言:javascript
复制
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
    <application>
      <!-- A list of all Windows versions that this application is designed to work with. 
            Windows will automatically select the most compatible environment.-->

      <!-- Windows 7 -->
      <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />
      <!-- Windows 8 -->
      <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />
      <!-- Windows 8.1 -->
      <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />
      <!-- Windows 10 -->
      <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
    </application>
  </compatibility>

有关参考示例,请参见https://github.com/cefsharp/CefSharp.MinimalExample/blob/master/CefSharp.MinimalExample.WinForms/app.manifest。我还建议确保您的应用程序是新闻部知道的。

当您的应用程序与Chrome进行比较时,确保您比较的是类似版本,这一点很重要。例如,Chrome 102的性能可能与CefSharp 100不同。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72638546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档