9

Scenario

I have a C# application compiled as a DLL. I have a build from last week and a build from this week. There has been a significant change in performance so I want to compare the the two builds to see what has changed.

ANY IDEAS?........SUGGESTIONS?

Cheers

EDIT:

Yes it would be better to compare the source code from version control........except we are using TFS, not by choice, and even with the bolton application TFS takes source control to a whole new level of shite........it's very difficult to revert without messing around with workspaces etc....i just thought the DLL approach would be easier...The application is a monster as well......

Community
  • 1
  • 1
Goober
  • 13,146
  • 50
  • 126
  • 195
  • 2
    Wouldn't it be better to compare the source code sitting in your version control repository? –  May 14 '10 at 08:32
  • 5
    TFS lets you compare different versions of the same file, even on different branches without a problem. Learn to use your tool instead of complaining about it. – Oded May 14 '10 at 08:44
  • I think TFS is powerful enough. And before deployment, you may log the new changes [file/config level], probably with work items [assuming each change checked in has a change request/work item associated], so it will give the power to search which file changed has been deployed for what reason. And I would add TFS tag, if I had the chance... – demokritos May 14 '10 at 09:06
  • 1
    A perfect example of good question made to look bad but someone who suggested it needs to be more focused. I guess the suggester needs to be more focused. It is clear and OP's question and intention is clear.. – Ziggler Feb 04 '20 at 21:39

5 Answers5

10

I would recommend to disassemble two libraries with the Reflector (right click on the assembly -> Export) and then compare directories generated with some merging tool, like WinMerge.

Regent
  • 5,502
  • 3
  • 33
  • 59
10

This is a free option to compare .Net C # assembly: Assembly Diff Tool for .NET - JustAssembly

Edvaldo Silva
  • 904
  • 2
  • 16
  • 29
7

Today the same can be done with JetBrains dotPeek. Load the dll right mouse button -> export to project and compare in WinMerge

mrosiak
  • 2,547
  • 1
  • 14
  • 7
2

Wouldn't it be better to profile the two dll? You will find where in the second one you are spending more time than in the first. This should give you an indication of what has gone wrong.

Francesco
  • 3,200
  • 1
  • 34
  • 46
  • 1
    It may be that the changes that are making the application slower are necessary; by profiling you will be able to keep the functionality in these changes whilst also optimising the code to remove the cause of the poor performance. The profiler is built into Visual Studio--in 2008, it lives on the Analyze menu. – Polyfun May 14 '10 at 09:12
  • Yes that's exactly my point. If there are no regressions in the test suite the changes have been introduced for some reason, so profiling seems the way to go. – Francesco May 14 '10 at 09:29
1

An updated answer to this question, if it is a dll written in C#, I would recommend dotPeek by JetBrains. Its free! After decompiling, you can copy the code text into a text editor like Notepad++ that allows you to compare two text files.

edepperson
  • 1,035
  • 1
  • 14
  • 33