Welcome Guest Search | Active Topics | Sign In | Register

RunDLL32 and Memory Footprint of EO.WebBrowser Options
Craig Oliver
Posted: Wednesday, September 3, 2014 3:09:16 PM

Rank: Advanced Member
Groups: Member

Joined: 7/7/2014
Posts: 60
Just a quick note: we did find some issues in our web code in terms of javascript not releasing things it should, and have improved that dramatically. In testing the EO browser works better than our current production build, so we've purchased that and in the middle of regression testing. Any additional memory improvements at this point, for us at any rate, would just be more icing on the cake.

thanks!
eo_support
Posted: Wednesday, September 3, 2014 5:36:17 PM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,070
Thank you very much for your business and valuable feedback! Please be rest assured that we are always working hard trying to get as much out as possible!
Chris
Posted: Thursday, January 8, 2015 4:25:46 PM
Rank: Newbie
Groups: Member

Joined: 1/6/2015
Posts: 8
I'd love a link (or email) to the latest multi dll build... We often spin up as many as 60 browsers and the memory is killing us. Thank you,

-Chris
eo_support
Posted: Thursday, January 8, 2015 4:47:24 PM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,070
Chris wrote:
I'd love a link (or email) to the latest multi dll build... We often spin up as many as 60 browsers and the memory is killing us. Thank you,

-Chris


Hi Chris,

You can download the multi-DLL build directly from our download page. See here for instructions:

http://www.essentialobjects.com/doc/6/install/multi_dll_build.aspx

Thanks!
crenzi
Posted: Thursday, January 15, 2015 7:48:45 AM
Rank: Member
Groups: Member

Joined: 11/13/2014
Posts: 13
We notice that as we add a new browser control (webview) to the application (such as a new tab in the tab example), there is one rundll that continues to increase. When we get to about 40 tabs, this one process can get up to about 1GB. Is there anything we can do on our end to keep that one process from growing that big? Load the browser controls a different way? I know I am reaching, but just figured I would ask.
eo_support
Posted: Thursday, January 15, 2015 10:06:29 AM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,070
Hi Crenzi,

Yes. This is normal. The multi-DLL build will reduce memory usage and the total amount of memory still increases when number of tabs increases.

Thanks!
CarlosG
Posted: Wednesday, July 13, 2016 10:34:33 AM
Rank: Member
Groups: Member

Joined: 2/27/2015
Posts: 13
Hi,

Can you please provide us a link for the Multi DLL installation package for version 2015 and 2016?

Thanks
Carlos
eo_support
Posted: Wednesday, July 13, 2016 12:13:10 PM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,070
CarlosG wrote:
Hi,

Can you please provide us a link for the Multi DLL installation package for version 2015 and 2016?

Thanks
Carlos


Hi,

There is no separate multi-DLL installation package for 2015 and 2016. Since 2016, the optimization used for the old multi-DLL package has been merged into the main package. So there is no need to have a separate installation for that.

Thanks!
ruk
Posted: Tuesday, May 16, 2017 12:57:22 PM
Rank: Advanced Member
Groups: Member

Joined: 5/15/2017
Posts: 48
I'm evaluating EO WebBrowser for our product and we are very pleased with its capabilities. Our major concern is the memory footprint. Is this still being worked out? Can I have the multi-dll link to try it out?
eo_support
Posted: Tuesday, May 16, 2017 1:10:28 PM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,070
ruk wrote:
I'm evaluating EO WebBrowser for our product and we are very pleased with its capabilities. Our major concern is the memory footprint. Is this still being worked out? Can I have the multi-dll link to try it out?


Hi,

This issue is already closed. As mentioned in one of the previous replies, the optimization used in the multi-DLL builds has already been merged into the main build. So there is no need to have a separate multi-DLL build. The current build should have a memory footprint very similar to Google Chrome browser.

Thanks
ruk
Posted: Tuesday, May 16, 2017 1:24:25 PM
Rank: Advanced Member
Groups: Member

Joined: 5/15/2017
Posts: 48
Thank you for the quick response. I'm using the evaluation copy. I'm currently using EO.base.dll, EO.WebBrowser.dll, EO.WebBrowser.Wpf.dll and EO.WebEngine.dll in the application that came with the evaluation copy download. I'm noticing higher memory footprint (more than twice) on the sub processes compared to Chrome. I'm probably missing something.
eo_support
Posted: Tuesday, May 16, 2017 2:07:49 PM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,070
You can check the total system available memory instead. The memory usage in task manager is misleading. The main difference between our product and Chrome is how we load the native DLLs and how this plays out in Chromium browser engine's multi-process architecture.

Chrome uses Windows to load DLLs and Windows loads DLL directly from the disk. Since Windows knows this is a DLL backed by the file system, Windows will load only one copy of this the read-only section of DLL (which usually contains the code) and memory usage of that section is not counted in each process. The writable section of the DLL (which usually contains data/variables) does count and is duplicated in each process. So for example, if Chrome loads one DLL and the DLL has 50M code and 20M data and there are 3 Chrome processes, the total memory amount you see in the task manager will 3 Chrome process using 20MB each.

In our product, the native DLLs are embedded in our .NET DLLs (this is a huge advantage of our product so that you do not have to deal with native DLL dependency and versioning issue). As a result, we must load the native DLL into memory first and then load them from the memory. However we use the same optimization Windows loader uses: we only load the read-only section once in the whole system and share them between all child processes. Nevertheless, because Windows is not aware of this, the read-only section will be counted in each process by Windows in task manager. So for exactly the same scenario as above, you will see 3 EO child process with 70M (50M + 20M) each, not 20 each. This does not mean they use 210M together. They only use 50MB + 20M * 3 = 110M together. The real memory cost of each process is still only 20M in this case even though the task manager will show 70MB.

Once the DLL is loaded, pretty much the controls are handed over to the native DLL ---- and this part is 99.9% identical between EO.WebBrowser and Google Chrome browser since they are built from the same source. We do modify the code in order to seamlessly integrate it better with .NET. But the impact of such minor modification on memory footprint should be negligible. As such the two should have almost identical memory consumption at system level.


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.