Title: Software Engineering Lab
1Software Engineering Lab Summer
2005 http//ce.sharif.edu/ganji/SELab
2What is Rational Quantify?
- A tool for finding performance bottlenecks.
- Quantify profiles performance for code written in
all commonly used programming languages - Visual C/C code
- Visual Basic projects
- Java applets, class files, .jar files, and code
launched by container programs - .NET managed code assemblies
- Components launched from container programs such
as Microsoft Internet Explorer, - Microsoft Excel and Microsoft Word plug-ins
3.NET Managed Code
- Program code that has been compiled to the
Microsoft Intermediate Language (MSIL). - MSIL is a CPU-independent instruction set
designed to run on Microsoft .NET platform. - Prior to execution, MSIL is converted to native
machine code by the .NET common language run time
(CLR).
4Selecting A Program to RUN
Searches for dependencies like classes here
For running .NET or VB 6 programs
Creates the file ltexenamegt_pure.ini in which it
saves your settings for future use
5Settings for Unmanaged Code (natively compiled
C/C applications)
Quantify tracks the total machine cycles required
to execute each line of code. (Most
detailed/Execution Overhead)
Quantify tracks the total machine cycles required
to execute each function. (Most
detailed/Execution Overhead)
- Quantify records the amount of time spent in each
function and then converts the time into
equivalent number of machine cycles. - Not accurate (influenced by CPU state)
- Best performance
6Settings for Java/Managed Code
7Run Time Settings for Unmanaged Code
- The timing method to use to record time for
functions in user modules. - Elapsed Time (Total time includes I/O,)
- Kernel Time (Amount of time when the thread is
in kernel mode) - User Kernel Time (Amount of time executing
code in the thread) - User Time (Amount of time when the thread is in
user mode) - Ignore (records the time as zero)
- The timing method to use to record time for
functions in system modules (e.g. kernel32.dll) - Elapsed Time
- Kernel Time
- User Kernel Time
- User Time
- Ignore
- The timing method to use to record time for
functions that block on I/O (e.g. Read File) - Elapsed Time
- Kernel Time
- User Kernel Time
- User Time
- Ignore
8Running the Program (Collecting Data)
9Call Graph View
10Function List View
11Function List View
12Function Detail View
13Annotated Source View
14Filtering
15Comparing two Run Results
16Note
- Do not use breakpoints while collecting data with
Quantify.
17Settings for Visual Studio .NET
- For native-compiled (unmanaged) code
- In the Property Pages for your project, C/C
folder, General page - Select Program Database in the Debug Information
Format property drop-down list box. - In the C/C folder, Code Generation page
- Select Default in the Basic Runtime Checks
property drop-down list box. - In the Linker folder, General page
- Select No in the Enable Incremental Linking
property drop-down list box. - In the Linker folder, Command Line page
- In the Additional Options box add /fixedno.
18THE END
19Notes
- The following topics are added for optional
presentations - Component-Based Software Engineering
- Aspect-Oriented Programming
- JavaBeans versus ActiveX
- Service-Oriented Programming
- XML, XSD and XSLT
- Dont forget to Check
- http//ce.sharif.edu/ganji/SELab