Click here to Skip to main content
15,887,917 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
when i'm going to one page to another page that time showing my computer memory usage high.
using ChromiumWebBrowser data with CefSharp and transfring 1 url page to other url page more then 20 time that time showing my computer memory high usage

Image

MemoryUsage.png - Google Drive[^]

What I have tried:

Page Load Time
C#
public void WebURLBind()
       {
           BtnGo.Enabled = false;
           try
           {
               WebsitePath = ConfigurationManager.AppSettings["WebsiteURL"];
               datecurrent = dateTimePicker1.Value;
               datetotalsecond = ConvertToTimestamp(datecurrent);

               settings.CachePath = AppDomain.CurrentDomain.BaseDirectory + "cache";
               settings.CefCommandLineArgs.Add("disable-application-cache", "1");
               settings.CefCommandLineArgs.Add("disable-session-storage", "1");

               Cef.Initialize(settings);
               Cef.GetGlobalCookieManager().DeleteCookies("", "");

               browser = new ChromiumWebBrowser(WebsitePath);
               this.panel1.Controls.Add(browser);
               browser.LoadingStateChanged += browser_FrameLoadEnd;
               browser.Dock = DockStyle.Fill;
               browser.LoadingStateChanged += ChromiumBrowser_IsLoadingChangedAsync;
           }
           catch (Exception ex)
           {
               BtnGo.Enabled = true;
           }
       }


C#
private void browser_FrameLoadEnd(object sender, LoadingStateChangedEventArgs e)
      {
          Thread.Sleep(1000);
          browser.ExecuteScriptAsync("PopulateWeeklyEvents(" + datetotalsecond + ",'',true)");
          Thread.Sleep(1000);
          browser.ExecuteScriptAsync("$('#earnings_rel_data_all_table_info').parent('div').find('div.dataTables_length').find('label').find('select').val(-1);");
          browser.ExecuteScriptAsync("$('#earnings_rel_data_all_table_info').parent('div').find('div.dataTables_length').find('label').find('select').trigger('change');");
      }

C#
public async void ChromiumBrowser_IsLoadingChangedAsync(object sender, CefSharp.LoadingStateChangedEventArgs e)
       {
           if (!e.IsLoading)
           {
               if (IsAactiveForm)
               {
                   await StartMethodAsync();
               }
           }
       }

C#
<pre> public async Task StartMethodAsync()
        {
            result = await this.browser.GetSourceAsync();
            result = result.Trim();           
            doc.LoadHtml(result);
            Boolean isBreaked = false;
            foreach (var nodesection in doc.DocumentNode.SelectNodes("//section[@id='events_list']"))
            {
                foreach (var SecNodes in nodesection.ChildNodes)
                {
                    if (SecNodes.Name == "ul")
                    {
                        foreach (var cnode in SecNodes.ChildNodes)
                        {
                            test++;
                            if (cnode.Name == "li" && cnode.HasClass("ui-tabs-active"))
                            {
                                csvFileName = cnode.InnerText;
                                Thread.Sleep(1000 * 3);
                                getTabData(csvFileName);                                
                                isBreaked = true;
                                break;
                            }
                        }
                    }
                    if (isBreaked)
                        break;
                }
                if (isBreaked)
                    break;
            }
            if (IsAactiveForm)
            {
                await CallMethod();
            }
        }
Posted
Updated 18-Jun-19 20:15pm
v2

You're assuming it's even possible to "tune" browsers; and that one in particular.

Since this browser is an IDisposable and I don't see any "using" code, it probably indicates you have a memory leak (by not disposing of resources properly).
 
Share this answer
 
i'm browser in manny method so may be can't use using code in any one mehod.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900