
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
214
|
Chapter 3: Classes and Structures
3.32 Determining Where Boxing and Unboxing Occur
Problem
You have a project consisting of some very complex code that is a performance bot-
tleneck for the entire application. You have been assigned to increase performance,
but you do not know where to start looking.
Solution
A great way to start looking for performance problems is to use a profiling tool to see
whether boxing is actually causing you any kind of problem in the first place. A pro-
filer will show you exactly what allocations are occurring and in what volume. There
are several profilers on the market; some are free and others are not.
If you have already established through profiling that boxing is definitely causing a
problem but you are still having trouble working out where it’s occurring, then you
can use the Ildasm disassembler tool that is packaged with VS.NET. With Ildasm
you can convert an entire project to its equivalent IL code and then dump the IL to a
text file. To do this, Ildasm has several command-line switches, one of which is the
/output switch. This switch is used as follows:
ildasm Proj1.dll /output:Proj1.il
This command will disassemble the file Proj1.dll and then write the disassembled IL
to the file Proj1.il.
A second useful command-line switch is
/source. This switch ...