我需要帮助来指出我的应用程序的瓶颈。 我在winforms app中使用geckofx browser control,在winxp sp3上运行。点击事件传播到dom这么慢 - 可能需要几秒钟。 一些带有nlog的日志记录
…
2015-03-30 19:05:26.3085 TRACE WM_LBUTTONDOWN
2015-03-30 19:05:27.0585 TRACE DomClick -Gecko.DOM.GeckoButtonElement
…
win7中没有这样的问题 - 它快速运行。 这是我的主要形式的代码 的 MainForm.cs
….
public MainForm()
{
InitializeComponent();
this.WindowState = FormWindowState.Maximized;
//catching win messages
Application.AddMessageFilter(this);
Gecko.GeckoPreferences.User["layers.accelerate-all"] = true;
this.Load += MainForm_Load;
}
void MainForm_Load(object sender, EventArgs e)
{
LogAllEvents();
}
…
private void LogAllEvents()
{
geckoWebBrowser.WindowSetBounds += (s, e) => { _logger.Trace("WindowSetBounds - " + e.Bounds); };
geckoWebBrowser.Paint += (s, e) => { _logger.Trace("Paint -" + e.ClipRectangle); };
geckoWebBrowser.Invalidated += (s, e) => { _logger.Trace("Invalidated -" + e.InvalidRect); };
geckoWebBrowser.DomClick += (s, e) => { _logger.Trace("DomClick -" + e.Target.ToString()); };
geckoWebBrowser.DocumentCompleted += (s, e) => { _logger.Trace("DocumentCompleted -" ); };
}
public bool PreFilterMessage(ref Message m)
{
if (m.Msg == WM_LBUTTONDOWN)
{
_logger.Trace("WM_LBUTTONDOWN");
return false;
}
else
if (m.Msg == WM_LBUTTONUP)
{
_logger.Trace("WM_LBUTTONUP");
return false;
}
else
return false;
}
MainForm.Designer.cs
…
// BrowserHolder
//
this.BrowserHolder.Controls.Add(this.geckoWebBrowser);
this.BrowserHolder.Dock = System.Windows.Forms.DockStyle.Fill;
this.BrowserHolder.Location = new System.Drawing.Point(0, 28);
this.BrowserHolder.Name = "BrowserHolder";
this.BrowserHolder.Size = new System.Drawing.Size(1180, 554);
this.BrowserHolder.TabIndex = 2;
//
// geckoWebBrowser
//
this.geckoWebBrowser.Dock = System.Windows.Forms.DockStyle.Fill;
this.geckoWebBrowser.Location = new System.Drawing.Point(0, 0);
this.geckoWebBrowser.Name = "geckoWebBrowser";
this.geckoWebBrowser.Size = new System.Drawing.Size(1180, 554);
this.geckoWebBrowser.TabIndex = 0;
this.geckoWebBrowser.UseHttpActivityObserver = false;
…
BrowserHolder是包装webbrowser控件的面板。
我不知道发生了什么,cpu使用率低于10%。 这是我的机器:ms windows embedded POSready 2009 ver2.0 service pack3 Intel Atom D2500,1.86 ghz,1.98 gb内存 Geckofx 16和31 - 同样的结果 - 点击速度很慢
我们最近决定使用cefsharp ver-33,它在目标机器上运行时没有延迟,但我仍然在寻找geckofx的答案