[BUG?]Using inheritance case memory leak?

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

Hi all,
I have created a simple template class as follow, but i encountered memory
leakage on the base.Render(writer). Have all you of encountered the same
problem?


using System;
using System.Web.UI;
public class PageBase : System.Web.UI.Page
{
private string _pageTitle;
public string PageTitle
{
get { return _pageTitle; }
set { _pageTitle = value; }
}

protected override void Render(HtmlTextWriter writer)
{
// First we will build up the html document,
// the head section and the body section.
writer.Write( @"
<html>
<head>
<title>" + PageTitle + @"</title>
</head>
<body>" );

// Then we allow the base class to render the
// controls contained in the ASPX file.
base.Render( writer );

// Finally we render the final tags to close
// the document.
Writer.Write( @"
</body>
</html>" );
}
}
 
Boy,
Just from looking at your code, I can't see how you are experiencing a
memory leak in that method. Omit that method and test again to see about
the memory usage. The memory problem is likely elsewhere.

Best regards,
Jeffrey Palermo
 
Hi Jeffrey,

Thank you for your reply.

I have used a software
(http://www.compuware.com/products/devpartner/default.htm) to monitor
performance of my application.
The software found that there is memory leakge at that point. i.e. the line
"base.render(writer)".

I missed something in last post. The whole program should be as follows:


using System;
using System.Web.UI;
public class PageBase : System.Web.UI.Page
{
private string _pageTitle;
public string PageTitle
{
get { return _pageTitle; }
set { _pageTitle = value; }
}

}




public class ChildClass: PageBase{

protected override void Render(HtmlTextWriter writer)
{
// First we will build up the html document,
// the head section and the body section.
writer.Write( @"
<html>
<head>
<title>" + PageTitle + @"</title>
</head>
<body>" );

// Then we allow the base class to render the
// controls contained in the ASPX file.
base.Render( writer );

// Finally we render the final tags to close
// the document.
Writer.Write( @"
</body>
</html>" );
}

}



boy
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top