Overhead of loading .pdb files for ASP.Net application?

90 views
Skip to first unread message

Mark

unread,
Mar 30, 2010, 4:10:01 PM3/30/10
to
Hi...

I was grumbling that a stack trace I got from our asp.net application didn't
have line numbers on some of the calls because some of our assemblies live in
the GAC...

I went to the ops guys and said I wanted to change our installer to put the
.pdbs in there too, and the ops guy asked me "What's the performance impact
of having to load all the pdb files?"

I said we were still loading the pdbs for all the assemblies *not* in the
GAC but I didn't have a numeric range to quantify it for him...

I searched for a while but didn't find anything addressing the question...

So how big a performance impact is there to tossing the pdbs in with an
ASP.Net app? I'd imagine it would be mostly in memory and mostly felt on
site warmup, but I was wondering if anyone here had tried to quantify it?

Thanks
Mark

Steven Cheng

unread,
Mar 31, 2010, 4:50:27 AM3/31/10
to
Hi Mark,

For assemblies put in GAC, you can consider using DEVPATH(for development
environment only) to store pdb symbol files for them:

#How to: Locate Assemblies by Using DEVPATH
http://msdn.microsoft.com/en-us/library/cskzh7h6(loband).aspx

Regarding on performance consideration of PDB files, I suggest you read the
following articles in which John Robbins give detailed explanation on PDB
and how it works and the performance related analysis.

#Do PDB Files Affect Performance?
http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/06/19/do-pdb-files-
affect-performance.aspx

#PDB Files: What Every Developer Must Know
http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/05/11/pdb-files-wha
t-every-developer-must-know.aspx

PDB files are for debugging purpose and generally the application process
will not load it unless some exception occurs and the .NET CLR's error
handling component will need to load symbol(so as to generate line number
info). In most cases, it is the debugging tools(who attach the running
process) that will need to load PDB(symbol files) for gettting
source/symbol information. The key point that will affect your
application's performance is how you compile it (the compile options you
apply on the compiler) which is explained in the article above. Generally,
for production application, you can just compile it as release build(fully
optimized) and with pdb file generated, this will not have performance
impace of your application's compiled code.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead


Delighting our customers is our #1 priority. We welcome your comments and
suggestions about how we can improve the support we provide to you. Please
feel free to let my manager know what you think of the level of service
provided. You can send feedback directly to my manager at:
msd...@microsoft.com.

--------------------
>From: =?Utf-8?B?TWFyaw==?= <mmod...@nospam.nospam>
>Subject: Overhead of loading .pdb files for ASP.Net application?
>Date: Tue, 30 Mar 2010 13:10:01 -0700

Reply all
Reply to author
Forward
0 new messages