Presentation is loading. Please wait.

Presentation is loading. Please wait.

Borland Optimizeit™ Profiler for the Microsoft .NET Framework

Similar presentations

Presentation on theme: "Borland Optimizeit™ Profiler for the Microsoft .NET Framework"— Presentation transcript:

1 Borland Optimizeit™ Profiler for the Microsoft .NET Framework

2 .NET Framework & Performance
Managed Applications Written in various programming languages like Delphi for .NET, C#, VB.NET, ASP.NET, J#, or even COBOL for .NET XML Web XML Web Web Web Windows Windows Services Services Forms Forms Forms Forms ASP.NET ASP.NET Data and Data and XML Classes XML Classes Common Language Runtime Higher level of abstraction that executes code, manages security, handles component “plumbing” and dependencies Base Base Framework Classes Framework Classes Added “Higher-level abstraction demand performance tuning” I thought I had this in my pitch. Hummm.. Also, I notice that you bundled up the critical needs- business and technology side into one category of “Business need”. You could either split up the needs or change the title slide of these slides to simply “critical need”. Common Language Runtime Common Language Runtime Higher-level of abstraction demands performance tuning

3 Performance characteristics of .NET
.NET strengths Performance challenges Rich .NET component libraries GC manages memory Built in threading Accelerated time-to- market Object layers difficult to predict GC overhead mgmt needed Built in thread issues Performance must be managed throughout Good News About .NET The key advantage of .NET is that it provides a common language runtime. The CLR is therefore a key part of the runtime equation as it is responsible for interpreting the Microsoft intermediate language (MSIL) code. It is object oriented which makes code re-usability very easy. Compared to C/C++ and other languages, .NET memory management is very easy. Users do not have to free objects themselves as there is a garbage collector there to do the job for them. There are also standard libraries included; so where as C++ for example you had to use 3rd party libraries, with .NET they are already included. Examples of this are common classes such as hash tables and vectors etc. and for the GUI you can also Windows Forms Synchronization is also much easer with .NET because it is actually an in-built part of the language. This means that you can synchronize everything directly from your code using the statement in .NET manged launguage like C#. From a performance aspect there are however some drawbacks with .NET: .NET has a higher level of abstraction which means that it is very difficult to know exactly what is going on in the CLR. This means that things could be going on in the CLR that you are simply not aware of when you are running your code. The garbage collector means that with .NET you don’t have to worry about freeing objects; you can create objects and then when you no longer need them and they are no longer being referenced, they are garbage collected automatically. This makes programming so much easier as you don’t have to worry about these issues. But you do also have to take in to account the cost of the garbage collector; when the garbage collector runs it freezes all of the threads within the application and so this can really slow your application down. Also, this does not mean to say that the problem of memory management has been eliminated, but we will take a closer a look at this later. There can also be issues with the standard libraries as you may not be fully aware of how they are behaving. For example a method may create a lot of temporary objects. This can affect the performance of your application by slowing it down. You may also lose time with synchronization too.

4 Performance tuning is essential
Speed, reliability, scalability Team productivity Time to market Lifecycle cost to maintain Costly re-architecting Project delays Production failures Complex h/w and s/w Improve: Avoid: Debug Profile The Optimizeit Suite is a development solution. Tracking and resolving performance risks in development is the optimal strategy to eliminate performance slow-downs later in the application lifecycle, which result in extensive re-architecting and costly project delays. QA Production Code .NET Development Deployment Lifecycle

5 Optimizeit Profiler Key Capabilities
Optimizeit Profiler delivers essential capabilities: CLR Overview Memory Profiling CPU Profiling The Optimizeit Profiler is feature-complete and provides 3 key profiling capabilities: High-level CLR information CPU Usage profiling Memory Profiling

6 Optimizeit Profiler Value Proposition
Optimizeit Profiler is essential for every developer to improve .NET application performance, increase developer productivity, and accelerate time-to-market Manage performance and preempt crises Empower .NET developers to write world-class applications Adopt regular use of Optimizeit Profiler as a best practice for every .NET developer

7 Fully Integrated With DiamondBack
Together ECO Design Develop Manage Test Define CaliberRM Optimizeit for .NET Deploy Microsoft Windows 2003 Borland InterBase

8 Optimizeit Profiler – CLR Information
The CLR Overview provides a good starting pointing to quickly see if an application is experiencing performance issues Real-time view inside the .NET CLR including: Heap graph monitors the heap size Class graph displays the number of classes loaded in the CLR Garbage Collector graph tracks garbage collector activity Thread graph tracks # of threads running High-level performance overview allows developers to understand in real time if a performance issue is related to CPU, or memory Focus on a specific action in the application being tested by setting a reference mark and viewing the performance metrics from that point onwards Class graph: displays the number of classes loaded in the Common Language Runtime (CLR) Garbage Collector graph: tracks garbage collector activity Thread graph: reveals the number of threads runnung and the number of threads actually using CPU

9 Optimizeit Profiler – Memory Profiling
The Memory Profiler tracks memory related issues: Track memory leaks Manage garbage collection Real-time monitoring of object allocations Memory allocation graphs, allocation backtrace graph Highlight the exact line of source code Object allocation monitoring Real-time monitoring of object allocations to understand in real time how the profiled program uses the CLR Easy-to-read graph shows in real time all allocated instances per class with instance count and size Graphical display clearly shows the volume of instances of each class Option for filter class lists based on regular expressions to focus on relevant classes Option to set a reference mark and view the instances allocated since the last mark, to focus on instances allocated by a specific action in the tested program Option to view freed object count to understand performance issues related to the allocation of too many temporary objects Garbage collection controls: Disable garbage collection to study temporary object allocations, enforce garbage collection at any time Understand object allocations Allocation Backtrace View allows developers to identify the code or part of the program responsible for instance allocations Graph display of all methods involved in instance allocations of a given class with the volume of allocations in percentage Option to reverse display to more easily focus on specific methods or lines of code responsible for object allocations Listing of methods with highest allocation count to help identify single methods responsible for excessive allocation Option to refine the display precision from methods to lines of code Automatic highlight of the lines of code relevant to instance allocations with the Source Code Viewer.

10 Optimizeit Profiler – CPU Usage Profiling
The CPU Profiler uncovers performance bottlenecks: Hotspot list makes it easy to see where most time is being spent Profiling information per thread and thread group Scalable call graph highlights the method call Highlight the exact line of source code CPU profiling Measure pure CPU usage or time usage during a profiling session Display of profiling information per thread and thread groups Color highlight of threads that were busy during profiling session Graph display of all significant methods or lines of code used during the profiling sessions Option to refine the display precision from methods to lines of code Time spent per method or line of code in percentage, absolute time, and invocation count Hot Spot™ Display: lists methods where most time was spent to help identify bottlenecks due to single methods Automatic highlight of relevant lines of code with the Source Code Viewer

Download ppt "Borland Optimizeit™ Profiler for the Microsoft .NET Framework"

Similar presentations

Ads by Google