[OPEN] [#10] Memory leaks‎

Page 6 of 8 FirstFirst ... 45678 LastLast
  1. #51
    Apologize for the big delay.

    I was hoping to provide you with any good news, but it is still the same. I can't reproduce memory leaking in IE9 using your sample.

    Though, seems, Chrome and FireFox leaks.
  2. #52
    Hi,

    It looks like we are performing something different as we all could reproduce this same issue directly against ExtJS samples, Ext.NET samples or compiling locally last Ext.NET trunk version.

    It would be possible to see this issue together? using our environment or yours, enabling remote control, an inquiero connection or any other way you prefer...

    We are open to any suggestion from yours.
    Last edited by softmachine2011; May 15, 2013 at 9:27 AM.
  3. #53
    Please tell can you reproduce the issue with a page with no Stores (no Stores at all)?
  4. #54
    Hi again,

    We will try the same sample without stores as soon as we can.

    But now, running again this same example:

    http://forums.ext.net/showthread.php...l=1#post107164

    in a new machine with these new specifications:

    IE 9.0.8112.16421 in Windows7 Ultimate Service Pack 1 (64bit)
    We get these other results:

    - Running Examples Explorer project directly from Visual Studio 2010: memory seems to always drops back down when we open & close a single Detail window several times. But if we open 10+ windows at a time, and then close all them, then we get a 3MB-4MB (aprox.) memory increase.

    - Publishing this web project and running it from IIS 7: we get about 4MB memory increase each time we open & close a window. We get a clearer increase, opening 10+ windows and then closing them.

    - Using Firefox: no matter what server we use to run the sample (VS or IIS), we can always reproduce this issue.


    So it looks like you should reproduce this issue with IE, publishing Examples Explorer (applying this sample modifications) and openning several windows before close all them.

    We will test now this same sample without stores, but we were waiting for your feedback too.

    Regards.
    Last edited by softmachine2011; May 17, 2013 at 12:12 PM.
  5. #55
    Hi,

    Tested again with no stores at all. Same results than in previous post.

    Here is our sample code:

    Default.aspx

    <%@ Page Language="C#" %>
    
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    
    <%@ Register src="WindowEditor.ascx" tagname="WindowEditor" tagprefix="uc1" %>
    
    <!DOCTYPE html>
    
    <html>
    <head runat="server">
        <title>Custom Window with Record Details - Ext.NET Examples</title>
        <link href="/resources/css/examples.css" rel="stylesheet" />
        
        <script>
            var CompanyX = {
                _index: 0,
    
                getIndex: function () {
                    return this._index;
                },
    
                setIndex: function (index) {
                    if (index > -1) {
                        this._index = index;
                    }
                },
    
                edit: function (index) {
                    this.setIndex(index);
                    this.open();
                },
    
                next: function () {
                    this.edit(this.getIndex() + 1);
                },
    
                previous: function () {
                    this.edit(this.getIndex() - 1);
                },
    
                refresh: function () {
                    App.GridPanel1.getView().refresh();
                },
    
                open: function () {
                    var w = new Ext.Window({
                        closeAction: 'destroy',
                        renderTo: Ext.getBody(),
                        resizable: true,
                        maximizable: false,
                        minimizable: false,
                        collapsible: false,
                        draggable: true,
                        isMinimized: false,
                        isMaximized: false,
                        minWidth: 400,
                        minHeight: 400,
                        width: 460,
                        height: 460,
                        isModal: false,
                        constrain: true,
                        loader: {
                            url: 'Detail.aspx?idx=' + this.getIndex(),
                            renderer: 'frame',
                            disableCaching: true,
                            loadMask: {
                                showMask: true
                            },
                            listeners: {
                                load: function (control) {
                                    control.target.iframe.dom.contentWindow.parentWindow = control.target;
                                }
                            }
                        },
                        listeners: {
                            close: {
                                fn: function (el) {
                                    el.destroy();
                                }
                            }
                        }
                    });
    
                    w.show();
                }
            };
        </script>
    </head>
    <body>
        <form runat="server">
            <ext:ResourceManager runat="server" />
            
            <h1>Custom Window with Record Details</h1>
            
            <p>For view/edit additional properties please click on the image in last column.</p>
            
            <ext:GridPanel 
                runat="server" 
                ID="GridPanel1" 
                Title="Employees" 
                Height="200">
                <TopBar>
                    <ext:Toolbar runat="server">
                        <Items>
                            <ext:Button runat="server" Icon="Pencil" StandOut="true">
                                <Listeners>
                                    <Click Handler="CompanyX.edit(CompanyX.getIndex()+1);" />                                
                                </Listeners>
                                <ToolTips>
                                    <ext:ToolTip runat="server" Html="Edit button" />
                                </ToolTips>
                            </ext:Button>                    
                        </Items>
                    </ext:Toolbar>
                </TopBar>
                <ColumnModel runat="server">
    			    <Columns>
                        <ext:Column runat="server" Text="Full Name" DataIndex="LastName" Flex="1">  
                            <Renderer Handler="return '<b>' + record.data['LastName'] + '</b>,' + record.data['FirstName']" />                 
                        </ext:Column>
                        <ext:Column runat="server" Text="Title" DataIndex="Title" Width="150">
                            <Editor>
                                <ext:TextField runat="server" />
                            </Editor>
                        </ext:Column>
                        <ext:DateColumn runat="server" Text="Birth Date" DataIndex="BirthDate" Format="yyyy-MM-dd">
                            <Editor>
                                <ext:DateField runat="server" Format="yyyy-MM-dd" />
                            </Editor>
                        </ext:DateColumn>
                        <ext:Column runat="server" Text="City" DataIndex="City" Width="100">
                            <Editor>
                                <ext:TextField runat="server" />
                            </Editor>
                        </ext:Column>
                        <ext:Column runat="server" Text="Address" DataIndex="Address" Width="250">
                            <Editor>
                                <ext:TextField runat="server" />
                            </Editor>
                        </ext:Column>
    			    </Columns>
                </ColumnModel>          
                <BottomBar>
                    <ext:PagingToolbar 
                        runat="server"                      
                        DisplayInfo="true"
                        DisplayMsg="Displaying employees {0} - {1} of {2}"
                        EmptyMsg="No employees to display"
                        />
                </BottomBar>                   
            </ext:GridPanel>
            
            <uc1:WindowEditor ID="WindowEditor1" runat="server" />
        </form>
    </body>
    </html>

    Detail.aspx

    <%@ Page Language="C#" %>
    
    <%@ Import Namespace="Ext.Net.Examples.Northwind"%>
    
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    
    <!DOCTYPE html>
    
    <html>
    <head runat="server">
        <title>Custom Window with Record Details - Ext.NET Examples</title>
        <link href="/resources/css/examples.css" rel="stylesheet" />
    </head>
    <body>
        <form runat="server">
            <ext:ResourceManager runat="server" />
            
            <ext:Viewport runat="server" Layout="BorderLayout" Border="false">
                <Items>
                    <ext:Panel runat="server" Region="North" Border="false">
                        <TopBar>
                            <ext:Toolbar runat="server">
                                <Items>
                                    <ext:SplitButton runat="server" Text="Menu Button" IconCls="add16">
                                        <Menu>
                                            <ext:Menu runat="server">
                                                <Items>
                                                    <ext:MenuItem runat="server" Text="Menu Button 1" />
                                                </Items>
                                            </ext:Menu>
                                        </Menu>
                                    </ext:SplitButton>
                                    <ext:ToolbarSeparator />
                                    <ext:SplitButton runat="server" Text="Cut" IconCls="add16">
                                        <Menu>
                                            <ext:Menu runat="server">
                                                <Items>
                                                    <ext:MenuItem runat="server" Text="Cut Menu Item" />
                                                </Items>
                                            </ext:Menu>
                                        </Menu>
                                    </ext:SplitButton>
                                    <ext:Button runat="server" Text="Copy" IconCls="add16" />
                                    <ext:Button runat="server" Text="Paste" IconCls="add16">
                                        <Menu>
                                            <ext:Menu runat="server">
                                                <Items>
                                                    <ext:MenuItem runat="server" Text="Paste Menu Item" />
                                                </Items>
                                            </ext:Menu>
                                        </Menu>
                                    </ext:Button>
                                    <ext:ToolbarSeparator />
                                    <ext:Button runat="server" Text="Format" IconCls="add16" />
                                </Items>
                            </ext:Toolbar>
                        </TopBar>  
                        <Items>
                            <ext:Toolbar runat="server">
                                <Items>                        
                                    <ext:Button runat="server" Icon="Add">
                                        <Listeners>
                                            <Click Handler="Ext.Msg.alert('Click','Click on Add');" />                                
                                        </Listeners>
                                        <ToolTips>
                                            <ext:ToolTip runat="server" Html="Simple button" />
                                        </ToolTips>
                                    </ext:Button>
                        
                                     <ext:Button runat="server" Icon="Accept">
                                        <Listeners>
                                            <Click Handler="Ext.Msg.alert('Click','Click on Accept');" />                                
                                        </Listeners>
                                        <ToolTips>
                                            <ext:ToolTip runat="server" Html="Simple button" />
                                        </ToolTips>
                                    </ext:Button>
                        
                                     <ext:Button runat="server" Icon="Delete">
                                        <Listeners>
                                            <Click Handler="Ext.Msg.alert('Click','Click on Delete');" />                                
                                        </Listeners>
                                        <ToolTips>
                                            <ext:ToolTip runat="server" Html="Simple button" />
                                        </ToolTips>
                                    </ext:Button>
                        
                                    <ext:ToolbarSeparator/>                        
                        
                                    <ext:Button runat="server" EnableToggle="true" ToggleGroup="Group1" Icon="GroupAdd" Pressed="true" />
                                    <ext:Button runat="server" EnableToggle="true" ToggleGroup="Group1" Icon="GroupDelete" />
                                    <ext:Button runat="server" EnableToggle="true" ToggleGroup="Group1" Icon="GroupEdit" />
                                </Items>
                            </ext:Toolbar>                    
                        </Items>              
                    </ext:Panel>
                    <ext:TabPanel runat="server" Region="Center" Layout="FitLayout" Border="false">
                        <Items>
                            <ext:FormPanel 
                                ID="CompanyInfoTab" 
                                runat="server" 
                                Title="Company Info" 
                                Icon="ChartOrganisation"
                                DefaultAnchor="100%"
                                BodyPadding="5">
                                <Items>
                                    <ext:TextField ID="EmployeeID1" runat="server" FieldLabel="Employee ID" Disabled="true" Name="EmployeeID" />
                                    <ext:TextField ID="FirstName" runat="server" FieldLabel="First Name" Name="FirstName" />
                                    <ext:TextField ID="LastName" runat="server" FieldLabel="Last Name" Name="LastName" />
                                    <ext:TextField ID="Title" runat="server" FieldLabel="Title" Name="Title" />
                                    <ext:ComboBox 
                                        ID="ReportsTo"
                                        runat="server"                             
                                        FieldLabel="Reports to" 
                                        AllowBlank="true"
                                        DisplayField="LastName"
                                        ValueField="EmployeeID"
                                        TypeAhead="true" 
                                        QueryMode="Local"
                                        Name="ReportsTo"
                                        ForceSelection="true"
                                        TriggerAction="All"
                                        EmptyText="Select an employee...">                                     
                                     </ext:ComboBox>
                                    <ext:DateField ID="HireDate" runat="server" FieldLabel="Hire date" Format="yyyy-MM-dd" Name="HireDate" />
                                    <ext:TextField runat="server" ID="Extension" FieldLabel="Extension" Name="Extension" />
                                </Items>
                            </ext:FormPanel>
                            <ext:FormPanel 
                                ID="PersonalInfoTab" 
                                runat="server" 
                                Title="Personal Info" 
                                Icon="User"
                                DefaultAnchor="100%"
                                BodyPadding="5">
                                <Items>
                                    <ext:TextField ID="EmployeeID2" runat="server" FieldLabel="Employee ID" Disabled="true" Name="EmployeeID" SubmitValue="false" />
                                    <ext:TextField ID="Address" runat="server" FieldLabel="Address" Name="Address" />
                                    <ext:TextField ID="City" runat="server" FieldLabel="City" Name="City" />
                                    <ext:TextField ID="PostCode" runat="server" FieldLabel="Post Code" Name="PostCode" />
                                    <ext:TextField ID="HomePhone" runat="server" FieldLabel="Home Phone" Name="HomePhone" />
                                    <ext:TextField ID="TitleCourt" runat="server" FieldLabel="Title Of Courtesy" Name="TitleCourt" />
                                    <ext:DateField ID="BirthDate" runat="server" FieldLabel="Birth date" Format="yyyy-MM-dd" Name="BirthDate" />
                                    <ext:TextField ID="Region" runat="server" FieldLabel="Region" Name="Region" />
                                    <ext:TextField ID="Country" runat="server" FieldLabel="Country" Name="Country" />
                                    <ext:TextArea ID="Note" runat="server" FieldLabel="Note" Height="50" Name="Note" />
                                </Items>
                            </ext:FormPanel>
                        </Items>     
                        <BottomBar>
                            <ext:PagingToolbar 
                                runat="server"   
                                DisplayInfo="true"
                                DisplayMsg="Displaying employees {0} - {1} of {2}"
                                EmptyMsg="No employees to display"
                                />
                        </BottomBar>          
                    </ext:TabPanel>
                </Items>        
            </ext:Viewport>
        </form>
    </body>
    </html>
    As we stated in previous post, you should reproduce this issue with IE applying our sample code in Examples Explorer and publishing it using IIS. Then, just need to open several windows before close all them at once.

    Could you confirm this?

    Regards.
  6. #56
    Hi again,

    Could you finally reproduce this issue?

    Thanks.
  7. #57
    I shared the example here.
    https://examples2.ext.net/#/GridPane...emory_Leaking/

    Seems I am able to reproduce memory leaking in IE9.

    My steps are:
    1. Click a column command of rows => Windows open
    2. Close the opened Windows

    I will try to narrow the problem.

    Also it appears to be reproducible with FireFox. I was able to reproduce it with pure ExtJS in FireFox (but not in IE9) and reported here:
    http://www.sencha.com/forum/showthread.php?264618
  8. #58
    Hi again,

    Also reproduced in IE with your sample and more or less with the same results:

    1. An small memory increase opening & closing a single window.
    2. A significant memory increase opening several windows at a time before close them.

    No matter if stores are present or not, it looks an ExtJS memory leak problem related with iframes.

    Regards.
  9. #59
    I have simplified your sample a lot and, finally, got a very simple test case which reproduces memory leaking for me.

    Environment

    1. Browsers: IE9, FireFox and Chrome
    2. Windows 7 SP1 64bit
    3. I run the sample with VS 2012 with its ASP.NET Development Server
    4. The latest Ext.NET from the SVN trunk (today, 4.2.1 release included)

    The steps are:

    1. Clicks the button 10 times (more clicks more leaking)
    2. Close all the Windows

    The results on my machine are:

    • IE9 with "disableCaching: true": 128 MB => 137 MB
    • IE9 without "disableCaching: true": 118 MB => 202 MB
    • FireFox (FireBug disabled) with "disableCaching: true": 312 MB => 436 MB (wait a bit, FireFox slowly releases memory)
    • FireFox (FireBug disabled) without "disableCaching: true": 366 MB => 430 MB (wait a bit, FireFox slowly releases memory)
    • Chrome with "disableCaching: true": 83 MB => 167 MB
    • Chrome without "disableCaching: true": 84 MB => 159 MB


    Here is a test case, the parent and child pages.

    Default.aspx (parent)
    <%@ Page Language="C#" %>
    
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    
    <!DOCTYPE html>
    <html>
    <head runat="server">
        <title>Ext.NET Examples</title>
    
        <script>
            var count = 0;
    
            var open = function (index) {
                new Ext.Window({
                    closeAction: 'destroy',
                    loader: {
                        url: 'Detail.aspx?idx=' + index,
                        renderer: 'frame'
                        //, disableCaching: true // if uncomment, memory still leaks, but less
                    }
                }).show();
            };
        </script>
    </head>
    <body>
        <ext:ResourceManager runat="server" />
    
        <ext:Button runat="server" Text="Open" Handler="open(count++);" />
    </body>
    </html>
    Detail.aspx
    <%@ Page Language="C#" %>
     
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
     
    <!DOCTYPE html>
    <html>
    <head runat="server">
        <title>Ext.NET Example</title>
    </head>
    <body>
        <ext:ResourceManager runat="server" />
    </body>
    </html>
    Next step

    I will try to reproduce it with pure ExtJS.

    EDIT by Daniil

    I just tried with this Detail.aspx

    Detail.aspx 2 (with raw ExtJS)
    <%@ Page Language="C#" %>
     
    <!DOCTYPE html>
    <html>
    <head runat="server">
        <title>Ext.NET Example</title>
    
        <script src="resources/js/ext-all-debug.js"></script>
    </head>
    <body>
    </body>
    </html>
    The result are below. So, they are pretty much the same.


    • IE9 with "disableCaching: true": 50 MB => 61 MB
    • IE9 without "disableCaching: true": 43 MB => 60 MB
    • FireFox (FireBug disabled) with "disableCaching: true": 367 MB => 403 MB (wait a bit, FireFox slowly releases memory)
    • FireFox (FireBug disabled) without "disableCaching: true": 382 MB => 402 MB (wait a bit, FireFox slowly releases memory)
    • Chrome with "disableCaching: true": 64 MB => 154 MB
    • Chrome without "disableCaching: true": 82 MB => 174 MB
    Last edited by Daniil; May 29, 2013 at 7:19 AM.
  10. #60
    I think I have reproduced the same with a pure ExtJS test case. Reported here:
    http://www.sencha.com/forum/showthread.php?265047

    Let's wait Sencha will confirm it or not.
Page 6 of 8 FirstFirst ... 45678 LastLast

Similar Threads

  1. Replies: 12
    Last Post: May 25, 2012, 11:34 AM
  2. TabPanel Control Memory Leaks
    By hpj1106 in forum 1.x Help
    Replies: 1
    Last Post: May 12, 2012, 10:04 AM
  3. Client Side Memory Leaks
    By ecko in forum 1.x Help
    Replies: 3
    Last Post: Nov 02, 2011, 6:22 AM
  4. Store rebinding and memory leaks
    By wdk in forum 1.x Help
    Replies: 0
    Last Post: Jun 28, 2011, 3:34 AM
  5. [CLOSED] memory leaks
    By acrossdev in forum 1.x Legacy Premium Help
    Replies: 1
    Last Post: Mar 22, 2011, 11:10 AM

Posting Permissions