Re: Brief overview

Matthew Mastracci <[email protected]> Tue, 11 Nov 2003 12:54:22 -0700
Newsgroups gmane.comp.windows.dotnet.nprof.devel
Message-ID <1068580461.2430.3730.camel@matt>
Hey Peter - glad to hear that you're interested in working on nprof.  I
can give you the basic architecture overview:

To keep development simple, nprof is broken up into 4 layers:

Layer 1: The C++ stub .dll: NProf.Hook.dll, injected into the target
process.  This .dll gathers profiling information, aggregates it and
sends it via a local socket to Layer 2.  The socket approach is used so
that there isn't any extra configuration (the SciTech profiler uses a
named pipe that requires some extra security configuration for ASP.NET
profiling)

Layer 2: The managed collector,
NProf.Glue.Profiler.Core.ProfilerSocketServer.  This layer listens on
the socket that Layer 1 is writing to.  It gathers the aggregated data
and stores it in managed collections.  Eventually, this layer will be
responsible for firing certain COR events for "real-time" profiling (ie:
viewing thread and appdomain start/stop info in realtime).  It will also
eventually be responsible for sending the profiler snapshot messages
requested by the higher layers.

Layer 3: The GUI classes in NProf.GUI.  These GUI classes are
responsible for "slicing and dicing" the managed data collections
gathered by Layer 2.  The GUI classes are embedded by Layer 4 to
complete the application.  Since both the VS.NET addin and the
standalone application require the same GUI classes, they were separated
out into their own layer.

Layer 4: The application classes (NProf.VSNetAddin and
NProf.Application).  These are simple hosts for the GUI classes of Layer
3, as well as managers for the project information stored in
NProf.Glue.Profiler.Project classes.  They are designed to contain as
little logic as possible. 

I posted some roadmap information on this mailing list.  The two major
features that nprof is missing right now are ASP.NET profiling and
profile snapshot support.  If you have a feature that you're interested
in adding, however, please go ahead and do so.  Let me know your
Sourceforge ID and I can set you up for CVS access.

If you have any questions, let me know and I'll try to answer them.

Matt.

On Tue, 2003-11-11 at 10:09, Peter Lee wrote:
> Can anyone point me to a location with an overview of the general
> design of nprof?  I'd like to jump in and start helping out with this
> project, and a high level design would give me a head start before
> diving into the code.
> 
> Thanks.
> 
> 
> 
> -------------------------------------------------------
> This SF.Net email sponsored by: ApacheCon 2003,
> 16-19 November in Las Vegas. Learn firsthand the latest
> developments in Apache, PHP, Perl, XML, Java, MySQL,
> WebDAV, and more! http://www.apachecon.com/
> _______________________________________________
> Nprof-developers mailing list
> Nprof-developers-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> https://lists.sourceforge.net/lists/listinfo/nprof-developers
-- 
Matthew Mastracci <[email protected]>



-------------------------------------------------------
This SF.Net email sponsored by: ApacheCon 2003,
16-19 November in Las Vegas. Learn firsthand the latest
developments in Apache, PHP, Perl, XML, Java, MySQL,
WebDAV, and more! http://www.apachecon.com/