[CLOSED] Memory leak

Page 2 of 4 FirstFirst 1234 LastLast
  1. #11
    It is happening to us as well, is there any other work around?
  2. #12
    Please see the following posts in this thread
    http://forums.ext.net/showthread.php...ll=1#post82525
    http://forums.ext.net/showthread.php...ll=1#post82758

    At this moment, it is all what we can suggest
  3. #13
    Hm.. looks like we are at the mercy of ExtJs... we are using Ext.Net for realtime trading and all records are update every 3 seconds (with ~99% new records). So your suggesstion will not work for us.... I have been checking the Sencha forum and looks like many people reported this and no response from Sencha or what so ever. Is kind of anoying... I wonder is there another way of showing realtime data in Grid without using Store...
  4. #14
    Maybe this suggestion can help.
    http://www.sencha.com/forum/showthre...l=1#post910900

    I wonder is there another way of showing realtime data in Grid without using Store...
    I think a Store is an essential part of a GridPanel.
  5. #15
    Hi Danill,

    Just tried that (Put that in the header) and got Ext.util is not define. Then i put it in the body after
    <ext:ResourceManager ID="ResourceManager1" runat="server" />
    no more complaint. But got error when calling controller, received Request Failure and the response JSON seems fine... not sure why..
    Last edited by drkoh; Jan 29, 2013 at 2:15 PM.
  6. #16
    So, some update. Some how if I set the
    Ext.decode = jsonParse;
    , i got the request failure. I tried just set the
    Ext.util.JSON.decode = jsonParse;
    but leave the
    Ext.decode = jsonParse;
    and the memory leak still exists.

    Note: I am testing this in Chrome. One thing tho is I have been testing it using FireFox as well (19.0 Beta Channel) and it seems the memory is cap at <400MB without using the above trick, but Chrome will goes up to ~2GB and crash (shows "Aw Snap" page).
    Last edited by drkoh; Jan 29, 2013 at 2:30 PM.
  7. #17
    The fix seems to really work (though, maybe, more testing needs).

    Please see how to apply the fix correctly.

    Is there IDProperty setting for the Model on your page? It is required as @sytel says.

    Could you try again with your application to confirm it helps or not?

    The link to download the json_sans_eval.js (I called it jsonParse.js in my sample):
    http://json-sans-eval.googlecode.com...n_sans_eval.js

    Example
    <%@ Page Language="C#" %>
    
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    
    <script runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!X.IsAjaxRequest)
            {
                this.BindData();
            }
        }
    
        protected void MyData_Refresh(object sender, StoreReadDataEventArgs e)
        {
            this.BindData();
        }
    
        private void BindData()
        {
            Store store = this.GridPanel1.GetStore();
            
            store.DataSource = this.Data;
            store.DataBind(); 
        }
    
        private object[] Data
        {
            get
            {
                DateTime now = DateTime.Now;
    
                return new object[]
                {
                    new object[] { "3m Co", 71.72, 0.02, 0.03, now },
                    new object[] { "Alcoa Inc", 29.01, 0.42, 1.47, now },
                    new object[] { "Altria Group Inc", 83.81, 0.28, 0.34, now },
                    new object[] { "American Express Company", 52.55, 0.01, 0.02, now },
                    new object[] { "American International Group, Inc.", 64.13, 0.31, 0.49, now },
                    new object[] { "AT&T Inc.", 31.61, -0.48, -1.54, now },
                    new object[] { "Boeing Co.", 75.43, 0.53, 0.71, now },
                    new object[] { "Caterpillar Inc.", 67.27, 0.92, 1.39, now },
                    new object[] { "Citigroup, Inc.", 49.37, 0.02, 0.04, now },
                    new object[] { "E.I. du Pont de Nemours and Company", 40.48, 0.51, 1.28, now },
                    new object[] { "Exxon Mobil Corp", 68.1, -0.43, -0.64, now },
                    new object[] { "General Electric Company", 34.14, -0.08, -0.23, now },
                    new object[] { "General Motors Corporation", 30.27, 1.09, 3.74, now },
                    new object[] { "Hewlett-Packard Co.", 36.53, -0.03, -0.08, now },
                    new object[] { "Honeywell Intl Inc", 38.77, 0.05, 0.13, now },
                    new object[] { "Intel Corporation", 19.88, 0.31, 1.58, now },
                    new object[] { "International Business Machines", 81.41, 0.44, 0.54, now },
                    new object[] { "Johnson & Johnson", 64.72, 0.06, 0.09, now },
                    new object[] { "JP Morgan & Chase & Co", 45.73, 0.07, 0.15, now },
                    new object[] { "McDonald\"s Corporation", 36.76, 0.86, 2.40, now },
                    new object[] { "Merck & Co., Inc.", 40.96, 0.41, 1.01, now },
                    new object[] { "Microsoft Corporation", 25.84, 0.14, 0.54, now },
                    new object[] { "Pfizer Inc", 27.96, 0.4, 1.45, now },
                    new object[] { "The Coca-Cola Company", 45.07, 0.26, 0.58, now },
                    new object[] { "The Home Depot, Inc.", 34.64, 0.35, 1.02, now },
                    new object[] { "The Procter & Gamble Company", 61.91, 0.01, 0.02, now },
                    new object[] { "United Technologies Corporation", 63.26, 0.55, 0.88, now },
                    new object[] { "Verizon Communications", 35.57, 0.39, 1.11, now },
                    new object[] { "Wal-Mart Stores, Inc.", 45.45, 0.73, 1.63, now }
                };
            }
        }
    </script>
    
    <!DOCTYPE html>
    
    <html>
    <head runat="server">
        <title>Simple Array Grid With Paging and Remote Reloading - Ext.NET Examples</title>
    
        <script src="resources/js/jsonParse.js"></script>
    
        <script>
            Ext.JSON.decode = jsonParse;
            Ext.decode = jsonParse;
        </script>
            
        <script>
            var template = '<span style="color:{0};">{1}</span>';
    
            var change = function (value) {
                return Ext.String.format(template, (value > 0) ? "green" : "red", value);
            };
    
            var pctChange = function (value) {
                return Ext.String.format(template, (value > 0) ? "green" : "red", value + "%");
            };
        </script>
    </head>
    <body>
        <form runat="server">
            <ext:ResourceManager runat="server" />
            
            <h1>Array Grid with Paging and Remote Reloading</h1>
            
            <p>Demonstrates how to create a grid from Array data with Local Paging and Remote Reloading.</p>
            
            <p>Notice <b>Last Updated</b> column is revised with a new server-side DateTime stamp when the GridPanel "Refresh" button is clicked.<br />This demonstrates that when the GridPanel is refreshed, the Data is requested again from the server via an DirectEvent, but the Paging and Sorting is done completely client-side in the browser.</p>
    
            <ext:TaskManager ID="TaskManager1" runat="server">
                    <Tasks>
                        <ext:Task AutoRun="true" TaskID="servertime" Interval="1000">
                            <Listeners>
                                <Update Handler="#{Store1}.reload();" />
                            </Listeners>
                        </ext:Task>
                    </Tasks>
            </ext:TaskManager>
            
            <ext:GridPanel
                ID="GridPanel1"
                runat="server" 
                Title="Array Grid" 
                Width="700">
                <Store>
                    <ext:Store ID="Store1" runat="server" OnReadData="MyData_Refresh" PageSize="10">
                        <Model>
                            <ext:Model runat="server" IDProperty="company">
                                <Fields>
                                    <ext:ModelField Name="company" />
                                    <ext:ModelField Name="price" Type="Float" />
                                    <ext:ModelField Name="change" Type="Float" />
                                    <ext:ModelField Name="pctChange" Type="Float" />
                                    <ext:ModelField Name="lastChange" Type="Date" />
                                </Fields>
                            </ext:Model>
                        </Model>                  
                    </ext:Store>
                </Store>
                <ColumnModel runat="server">
                    <Columns>
                        <ext:RowNumbererColumn runat="server" Width="35" />
                        <ext:Column runat="server" Text="Company" DataIndex="company" Flex="1" />
                        <ext:Column runat="server" Text="Price" Width="75" DataIndex="price">
                            <Renderer Format="UsMoney" />
                        </ext:Column>
                        <ext:Column runat="server" Text="Change" Width="75" DataIndex="change">
                            <Renderer Fn="change" />
                        </ext:Column>
                        <ext:Column runat="server" Text="Change" Width="75" DataIndex="pctChange">
                            <Renderer Fn="pctChange" />
                        </ext:Column>
                        <ext:DateColumn runat="server" Text="Last Updated" Width="85" DataIndex="lastChange" Format="H:mm:ss" />
                    </Columns>
                </ColumnModel>
                <SelectionModel>
                    <ext:RowSelectionModel runat="server" Mode="Multi" />
                </SelectionModel>
                <View>
                    <ext:GridView runat="server" StripeRows="true">                   
                    </ext:GridView>
                </View>            
                <BottomBar>
                     <ext:PagingToolbar runat="server">
                        <Items>
                            <ext:Label runat="server" Text="Page size:" />
                            <ext:ToolbarSpacer runat="server" Width="10" />
                            <ext:ComboBox runat="server" Width="80">
                                <Items>
                                    <ext:ListItem Text="1" />
                                    <ext:ListItem Text="2" />
                                    <ext:ListItem Text="10" />
                                    <ext:ListItem Text="20" />
                                </Items>
                                <SelectedItems>
                                    <ext:ListItem Value="10" />
                                </SelectedItems>
                                <Listeners>
                                    <Select Handler="#{GridPanel1}.store.pageSize = parseInt(this.getValue(), 10); #{GridPanel1}.store.reload();" />
                                </Listeners>
                            </ext:ComboBox>
                        </Items>
                        <Plugins>
                            <ext:ProgressBarPager runat="server" />
                        </Plugins>
                    </ext:PagingToolbar>
                </BottomBar>
            </ext:GridPanel>
        </form>
    </body>
    </html>
  8. #18
    Hi,

    I tried putting the following the
    <Head><script src="/Resources/js/json_sans_eval.js" type="text/javascript"></script>    <script>
            Ext.JSON.decode = jsonParse;
            Ext.decode = jsonParse;
        </script></head>
    and the the Firebug shows
    ReferenceError: Ext is not defined
    Ext.JSON.decode = jsonParse;
    FYI, i am using MVC3


    Thanks.
  9. #19
    Hi,

    Add runat="server" to head tag or you need to place that script after
    <ext:ResourcePlaceHolder runat="server" Mode="ScriptFiles" />
  10. #20
    Hi,

    FYI, i am using 1.6 from the branch. (so the Ext version i think is 3.x? and Ext.JSON is in ext 4.x)

    Sorry, i think i am almost there.. this is what I have

    <head id="Head1" runat="server">    
        <script src="/Resources/js/jquery-1.4.4.min.js" type="text/javascript"></script>
        <script src="/Resources/js/json_sans_eval.js" type="text/javascript"></script>
        <ext:ResourcePlaceHolder ID="ResourcePlaceHolder1" runat="server" Mode="ScriptFiles" />
        <script>
            Ext.JSON.decode = jsonParse;
            Ext.decode = jsonParse;
        </script>
    </head>
    and error in FireBug shows the following:

    TypeError: Ext.JSON is undefined    ==>   Ext.JSON.decode = jsonParse;
    Last edited by drkoh; Jan 29, 2013 at 6:07 PM.
Page 2 of 4 FirstFirst 1234 LastLast

Similar Threads

  1. [CLOSED] [1.0] Performance in IE6 (memory leak?)
    By danielg in forum 1.x Legacy Premium Help
    Replies: 9
    Last Post: Apr 27, 2012, 2:57 PM
  2. Memory Leak with Grid Local Filter
    By reverseblade in forum 1.x Help
    Replies: 1
    Last Post: Apr 27, 2011, 10:00 AM
  3. Memory leak desktop application
    By Yannis in forum 1.x Help
    Replies: 0
    Last Post: Apr 05, 2011, 3:47 AM
  4. TaskManager cause IE memory leak
    By Tom Zhang in forum 1.x Help
    Replies: 1
    Last Post: Sep 19, 2010, 5:32 AM
  5. Memory Leak in I.E.
    By crazypsdev in forum 1.x Help
    Replies: 6
    Last Post: Nov 09, 2009, 9:55 AM

Tags for this Thread

Posting Permissions