我開發了一個 winforms,向用戶展示了一個使用 3D 渲染(使用 THREEJS)的 Web 應用程式。問題是不是每個客戶端都有足夠好的 CPU 來使用這個應用程式。當通過瀏覽器訪問它時,該應用程式幾乎在每臺計算機上都能順利運行,但在通過 winforms 應用程式訪問它時卻不能。這是每個程式的 CPU 使用率:
在 Google Chrome 上運行相同的內容時使用 2.3% 的 CPU,而我運行 CEFSharp 的 winforms 應用程式使用 92.7%。
這是我的 winforms 組件的代碼:
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?
uj5u.com熱心網友回復:
首先,您需要啟用 GPU 加速。禁用 GPU 加速的 CPU 使用率會更高。
其次使用 64 位版本以獲得更好的性能。您正在將作為 64 位行程運行的 Chrome 與您的 32 位應用程式進行比較。
第三,您需要確保您的應用程式有一個 app.manifest,其中包含兼容性條目。否則會對性能產生不利影響。
<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。我還建議確保您的應用程式支持 DPI。
在將您的應用程式與 Chrome 進行比較時,確保您在比較類似版本時非常重要。例如,Chrome 102 的性能可能與 CefSharp 100 不同。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/497122.html
上一篇:CefSharp顯示奇數??邊距
