#develop (short for SharpDevelop) is a free IDE for .NET programming languages.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

43 lines
2.2 KiB

OVERVIEW OF THE PROFILER ARCHITECTURE
TABLE OF CONTENTS
I. Terms And Definitions
II. Basic Information About Data Storage
I. TERMS AND DEFINITIONS
In the following terms used in this document are defined to make the reader
aware of their meaning.
Profiler: The system consisting of a Hook and a Controller and different
ProfilingDataWriters and ProfilingDataProviders, which access and create
ProfilingSessions.
ProfilingSession: A ProfilingSession is a list of ProfilingDataSets,
NameMappings plus various meta data, such as version number, processor frequency
of the CPU of the system, on which the ProfilingSession was recorded. Please
note that a ProfilingSession is represented by a ProfilingDataWriter and a
ProfilingDataProvider in the Object Model, there is no ProfilingSession object
as such.
ProfilingDataWriter: Provides functionality to write profiling data, in
particular ProfilingDataSets and NameMappings.
ProfilingDataProvider: Provides functionality to read profiling data, get
and set meta data properties.
ProfilingDataSet: It is a container for the data collected by the profiler
in a certain time period. The collected data includes the tree-structure of
all calls in the time period and the CPU usage at the end of the period.
Controller: The managed part of the profiler. It is responsible for memory
and data storage management, preparation of the profiler environment and
controlling the profiling process.
NameMapping: A set of strings describing a FunctionInfo. Each NameMapping
consists of a fully qualified method name, return type and parameter list. If
the name is the name of a CallTreeNode with a special role (like thread nodes)
then some information might be missing (for example: thread nodes do not contain
information about a return type or parameter list).
CallTreeNode: A node of the call tree created by the profiler.
Hook: The unmanaged part of the profiler running inside the Profilee. It
receives and handles callbacks from the Common Language Runtime (CLR).
Profilee: The process/program being profiled.
BASIC INFORMATION ABOUT DATA STORAGE
The data collected by the Hook is made available to the Controller by storing it into a memory mapped file in the system's page file.