PDA

View Full Version : [CLOSED] IE8 Memory leaking



jcarlos
Apr 11, 2014, 10:08 PM
Hi, I am experiencing a great issue of memory leak with the Ext.Net in the IE8.
I saw some other threads here with the same subject, but not seems to be the same case that I detected.
The memory usage of the browser is growing fastly (50~60Mb) at each new page that is loaded until roughly 1.5Gb when the IE crashes due to not enough memory and I cannot perceive any significative garbage collect by it.
The application does not use any frame/iframe or Ext.History.
Just loads a new page (window.location) at each request.
The memory consuming seems to occupy more memory when the page has more data.
I also tested with IE9, IE10 and Chrome, but the issue does not occurs in these browsers.

To reproduce the issue I also tested with the samples of the Ext.Net with the sample GridPanel/ArrayGrid/Simple and besides the consuming was lower (30~50Mb) than my application at each refresh, the issue also was detected.

These was the sample memory usage at each request with the Ext.Net, in Mb, starting with 10Mb with no page loaded:135,192,267,323,202,220,389,318

I also tried with the samples of the pure extjs, directly from sencha web site with the sample extjs-build/examples/grid/paging.html. The memory consuming was also high, but much less and more stable than the case with Ext.Net.

These was the sample memory usage at each request with the pure extjs, in Mb, starting with 10Mb with no page loaded:50,89,96,104,106,106,106,108,109.

I guess that the main difference here can be the case of the samples in Ext.Net may be using frames, but it is not the case with my application.

Do you know about any similar issue or workaround for this?

Best regards, thanks,

Jose Carlos.

Vladimir
Apr 12, 2014, 5:26 PM
Hi,

Yes, there is memory leaking in ExtJS. We reported about such problem to Sencha several times but unfortunatelly still no any feedback
First, we want to see your test sample which reproduces the issue. May be we would be able to locate problem code
Second, you try to reproduce the issue in empty page with resource manager only. If the issue is reproduciable then problem code is located in Ext.Net/ExtJS resources for sure.

Also, I remember that was the problem with store reloading
http://forums.ext.net/showthread.php?19142-CLOSED-Memory-leak

Do you have consistently reloaded store?

jcarlos
Apr 12, 2014, 7:47 PM
Hi Vladimir, thanks by your support,



First, we want to see your test sample which reproduces the issue. May be we would be able to locate problem code


The sample that I tried has the same behavior as the sample in the Ext.Net, located in GridPanel/ArrayGrid/Simple, that also have the same issue of memory leaking, as I commented.
Of course, the application has some business rules complexity, but just as very basic sample, the code that I evaluated has similar funcionality as the code below:

myController.cs

public partial class myController : Controller
{
public virtual ActionResult Index()
{
IList<MyViewModel> myViewModelList = this.Service.MyViewModel_GetList();

return View(ActionNames.Index, myViewModelList);

}

}Index.cshtml:

@model IList<MyViewModel>

@{
Layout = "~/Views/Shared/myLayout.cshtml";
}

@section pageBody
{
var X = Html.X();

X.Panel()
.Border(false)
.Layout(LayoutType.Fit)
.Items(
X.GridPanel()
.Layout(LayoutType.Fit)
.Border(false)
.Store(X.StoreForModel())
.ColumnModel(
X.ColumnFor(Model, m => m.code).ToBuilder<Column.builder>().Flex(10),
X.ColumnFor(Model, m => m.description).ToBuilder<Column.Builder>().Flex(50)
)
.SelectionModel(
X.RowSelectionModel()
.Mode(SelectionMode.Single)
.Listeners(l => l.Select.Handler = "mySelectFunc(this);")
)
.Listeners(l => l.Added.Handler = "myAddedFunc(this);");
);



Second, you try to reproduce the issue in empty page with resource manager only. If the issue is reproduciable then problem code is located in Ext.Net/ExtJS resources for sure.


I will try this scenario and let you know the results.



Also, I remember that was the problem with store reloading
http://forums.ext.net/showthread.php?19142-CLOSED-Memory-leak

Do you have consistently reloaded store?

There is no store reloading / ajaxProxy envolved in my cases. The data is loaded automatically together the page load as the sample above.

Thank you, regards,

Jose Carlos

Vladimir
Apr 12, 2014, 7:53 PM
The sample that I tried has the same behavior as the sample in the Ext.Net, located in GridPanel/ArrayGrid/Simple, that also have the same issue of memory leaking, as I commented.


What steps are required to reprduce the issue? Refresh the page many times using browser refresh button?

jcarlos
Apr 13, 2014, 4:09 PM
What steps are required to reprduce the issue? Refresh the page many times using browser refresh button?

Hi, exactly, or just enter in the url field and press the return key.

Regards,

Jose Carlos.

Daniil
Apr 14, 2014, 8:55 PM
We tested with this sample.
http://examples2.ext.net/#/GridPanel/ArrayGrid/Simple/

Win7 64bit Professional + IE 8.0.7601

No memory increase on page reload.

jcarlos
Apr 14, 2014, 9:51 PM
We tested with this sample.
http://examples2.ext.net/#/GridPanel/ArrayGrid/Simple/

Win7 64bit Professional + IE 8.0.7601

No memory increase on page reload.

Hi Daniil, its very strange, I just tested the same sample page again in two different VMs and both are indicating memory leak.

These are the sample that I just captured (in Mb):

VM1 (Win7 32bit Professional + IE 8.0.7601.17514) => 10, 136, 162, 178, 240, 270, 340, 343, 344
VM2 (Win7 64bit Ultimate + IE 8.0.7600.16385) => 10, 126, 200, 422, 459, 461, 462, 463

All sample was captured through the task manager until the stabilization of the %cpu usage (equals to zero).
The captured value corresponding to each refresh (F5) on the same page using the same tab of the browser.

Curiously, all leaked memory is disposed when another site on another domain is opened over the same tab.

Please, how do you performed your testes?

Thank you, regards,

Jose Carlos.

Daniil
Apr 15, 2014, 12:08 AM
Please, how do you performed your testes?


1. Open this page in IE8:
http://examples2.ext.net/#/GridPanel/ArrayGrid/Simple/

2. Check the consumed memory in the Task Manager for the IE process.

3. Press F5 a few items.

4. Check the consumed memory in the Task Manager for the IE process.

jcarlos
Apr 15, 2014, 12:51 AM
Hi, this is exactly what I also did, but it is important to emphasize that I waited for the entirely rendering of the components between each refresh.

I don't know why your test had a different result from mine in two similar environments.

Tomorrow I will try installing a fresh windows / IE8 in a new VM with no other additional software and check again this same test case.

I will let you know the results.

If you have any additional information that you can share, please post.

Thank you, regards,

Jose Carlos.

jcarlos
Apr 28, 2014, 2:02 AM
Hi, sorry I had some other activities and could not test it before as I planned.
But now I just tested the same case again in a new installed Windows 7 Professional SP1, 32 bits in a VM with 2GB of RAM, created only to this purpose.
It was not installed any other additional software or Windows patches.
Unfortunately, the results was the same as I got before, indicating a memory leak.
These was the results of memory occupied by the browser at each refresh with F5 key (in MBytes):

8,90,134,223,253,332,360,366,381,389

But it is very strange that you could not reproduce in your environment as I reproduced in all the environments that I tried.
It is very important to remember that the issue was detected in IE8 vs 8.0.7601.17514 but not with the IE10 when applying its compatibility view.

Please, could you check it again with an environment with this exact same characteristics or inform me if I need to provide more info?

Best regards, thanks,

J.Carlos

Daniil
May 13, 2014, 5:12 PM
At this point, we were not able to get it reproducible. We will try again.

Daniil
Oct 10, 2014, 11:24 AM
It looks we cannot reproduce the issue. I am closing the thread for now. Though, please feel free to update with any new information.