Welcome Guest Search | Active Topics | Sign In | Register

rundll32 memory usage and cleanup Options
NRGSTREAM
Posted: Tuesday, October 6, 2015 3:18:54 PM
Rank: Member
Groups: Member

Joined: 9/1/2015
Posts: 23
I seem to be having an issue with memory cleanup on the rundll32.exe processes. I have an app where I launch about 10 different webbrowser windows in. Each of the rundll32.exe processes start off in the 50,000k of memory range in the task manager. After around 30 mins, almost all of them have dropped down to less than 20,000k. This is on a machine with EO.Total.2015 software installed. Another machine where I've just deployed the app and the dll's to the application folder, the memory doesn't drop. I tried a 3rd machine without EO.Total installed and the memory usage continued to climb. Once EO.Total was installed, memory cleanup started working.

The usage scenario of this application is to leave the windows open for long periods of time, maybe days even. Even overnight, the non EO.Total machine has windows using around 170,000k of memory whereas my EO.Total machines stay around 20,000k.

Is there something that the install of EO.Total does that I'm not doing with just an xcopy deployment?

Is it a machine specific issue?

I'm hesitant to install EO.Total on my test machine because that is not an option we can do for our clients.
eo_support
Posted: Tuesday, October 6, 2015 7:30:14 PM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,067
Hi,

I can confirm that installing EO.Total or not does not have any impact on memory usage.

A lot of factors can affect memory usage. EO.WebBrowser can use memory more efficiently on Windows 7 and up thus use less memory on these system than on older version of Windows such as Windows 2003. Also newer version of EO.WebBrowser uses memory more efficiently than older version. So you can check whether they are using the same version of Windows and same version of EO.WebBrowser. It is recommended that you update to the latest build if you have not already done so.

Another factor is JavaScript code. JavaScript in your page can consume a lot of memory and that obviously totally depends on the code in your page. You can verify if that's the problem by disabling all JavaScript in the page and then observe the memory usage.

In any case, it should have nothing to do with whether EO.Total is installed or not.

Thanks!
NRGSTREAM
Posted: Thursday, October 8, 2015 4:50:19 PM
Rank: Member
Groups: Member

Joined: 9/1/2015
Posts: 23
Ok, so I tested my one machine that wasn't cleaning up memory by installing EO.Total and it did not help. So right now, I have 1 Windows 10 machine that the rundll32 processes will release around half of their original memory within 30 minutes and 1 windows 10 machine that doesn't release its memory. I've tested both machines with 2015.2.31.18 and yesterday I upgraded them all to 2015.2.78.2 with no improvement.

I cannot disable javascript as the webpages that they're viewing use javascript to refresh the content.

Here's some screen shots to show memory usage

Working computer at startup


Same computer 30 mins later


Not working computer at startup


Not working computer 30 mins later


Running them overnight, the working computer stays below 50,000k whereas the other computer has some windows over 100,000k and even one over 200,000k. Both machines are viewing the exact same number of web pages with the exact same content that is constantly refreshing approximately every 5 minutes

Is there anything I can do to force a memory cleanup? Anything you can think of that affects the memory being released?
eo_support
Posted: Thursday, October 8, 2015 5:38:18 PM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,067
Hi,

There isn't much you can do on the WebView side beside restarting your app. A browser engine is a huge project and we pretty much take it as is from the Chrome project, so we are not in a position to perform memory analyze or optimization for a project of this scale --- it would be beyond our capacity. If you really want to force clean up, the only reliable way now is to restart your application. We are working on adding isolate "engine" support so that you will be able to create multiple browser engine and you can choose to restart any of these engines without restarting your aplication, but that would still require some sort of a "restart", in this case it would mean destroying and recreating all the WebView objects associated to that engine.

Having that said, based on our experience it is very common that JavaScript code can cause excessive memory usage. So that might be something you want to take a deeper look before we add the "engine" level support.

Thanks!


You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.