John500
asked on
How to identify bottlenecks in ASP to improve performance
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.UltraWinG rid.UltraG ridCell
790fd8c4 1310318 52389724 System.String
07e1fcb4 339952 89747328 Infragistics.Win.Appearanc e
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
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.UltraWinG
790fd8c4 1310318 52389724 System.String
07e1fcb4 339952 89747328 Infragistics.Win.Appearanc
7912d8f8 690781 96179680 System.Object[]
093d522c 102219 136564584 TV8_Demo.clsBookingDetail
010c340c 858880 147727360 System.Nullable`1[[System.
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
ASKER
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?
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?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks again
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.