Solved

How to identify bottlenecks in ASP to improve performance

Posted on 2009-07-07
4
496 Views
Last Modified: 2013-12-07
Greetings,

We have a web application that takes too much time loading various pages.  I have a basic idea of what could be the problem like certain grids etc.  However, I'd like to identify what structures could be the culprits.

As an example of what I hope to achieve with ASP performance monitoring, one developer says the following concerning a .Net Windows application:

In the case of my application, as shown by the Performance Monitor snapshot (shown below), the native code (in blue) used memory sparingly, but managed code (in yellow) shot to the moon. The dumpheap command uncovered the following list of suspects (where the 3rd column is memory usage, in bytes):

Col 1            Col 2        Col 3                    Col 4
---------------------------------------------------------------------------------
04eaec84    429440    29201920    TV8_Demo.clsRating
05f9092c     429440    30919680    TV8_Demo.BLstBaseRating
07f8dcfc      336132    44369424     Infragistics.Win.UltraWinGrid.UltraGridCell
790fd8c4   1310318    52389724    System.String
07e1fcb4     339952    89747328    Infragistics.Win.Appearance
7912d8f8    690781     96179680    System.Object[]
093d522c 102219 136564584 TV8_Demo.clsBookingDetail
010c340c 858880 147727360 System.Nullable`1[[System.Single, mscorlib]][]

He goes on to say:

... This structure was so insignificant that it didnt come immediately to mind when I saw the results of the dumpheap command  structures and value types arent identified separately in the heap, but are lumped into the objects which own them,such as clsBookingDetail, BLstBaseRating and clsRating in the above list.

Question:  How can I accomplish this same kind of performance monitoring with a Web application.  Can I still use dumpheap seeing the code behind is written in VB?

And how?

Thanks


performance-monitor.JPG
0
Comment
Question by:John500
  • 2
  • 2
4 Comments
 
LVL 14

Expert Comment

by:_Stilgar_
ID: 24804467
With .NET, there is no significant difference between winforms (desktop applications) and webforms (web applications), so whatever you can do with the one you could do with the other.

Your questions is way to generic to answer - it takes understanding your code and architecture to correctly identifying the bottlenecks. If I were you I would have started to think where the bottlenecks *might* be, and then run in debug mode and inspect the times it takes those parts to execute.

Just a small tip: usuaully bottlenecks are with the DB and the parts where the application accesses it. Make sure queries are well written, and whatever could be retrieved in the first call is indeed gathered there and no further queries are required for it.
0
 

Author Comment

by:John500
ID: 24807830
Good stuff, appreciate it.

I would like to use the dumpheap command in questionable areas as you say.  Just as the article I posted a link to mentions - we too have heavy objects from Infragistics like their grids or editors etc.  I like to use the dumpheap command to see whether it's our class objects or queries or Infragistics.

Have you ever used this approach along with the Performance Monitor?
0
 
LVL 14

Accepted Solution

by:
_Stilgar_ earned 500 total points
ID: 24808318
No. As dumb as it may sound, I usually trust my instincts and locate bugs and bottlenecks by using only debug mode and the code editor. Pretty much like hunting with no weapons and only using your fingers, but it works for me :-)

However, this really depands on your application and what bottlenecks you're experiencing. You may find that what you are after are actually network issues, DB connectivity, or improper use of a 3rd party component or code. Speed bottlenecks sometimes have nothing to do with memory usage...
0
 

Author Closing Comment

by:John500
ID: 31600714
Thanks again
0

Featured Post

DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Accessibility and Usability are two concepts that seem to be closely related.  But, too many people seem to have a distorted perception of them. During last five years, those two words have come to the day-to-day work of almost every web develope…
I've been asked to discuss some of the UX activities that I'm using with my team. Here I will share some details about how we approach UX projects.
The viewer will learn how to dynamically set the form action using jQuery.
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…

919 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now