鼠标点击dom性能问题geckofx(嵌入式win xp sp3)

时间:2015-03-30 16:39:48

标签: c# winforms dom windows-xp geckofx

我需要帮助来指出我的应用程序的瓶颈。 我在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的答案

0 个答案:

没有答案