Best compilation and packaging option for profiling

Hi,

My packages are compiled with the following options :
- AnyCPU
- Release
- Optimize flag

And when packaging is done, all PDB are removed.

I can adapt those as I want, but I would like to know what are the best options to set before.

Also I would like to have an overview of which option can impact what.

For example:
- if I set Optimize mode, what does it change when profiling and profiling results ?
- if I compile using release, what does it change when profiling and profiling results ?
- ...

Thanks

4 comments

Dear Dominique,

It's very hard to give an abstract advices. Could you tell me more about your application?

--
Mikhail Pilin
Senior Software Engineer
JetBrains GmbH
http://JetBrains.com
"Develop with pleasure!"

0

hi, thanks for answering.

So our solution contains 7 components :
- 3 Windows Services
- 3 ASP.NET IIS Web Applications
- 1 Silverlight 4.0 application

All components communicate together.

Everything is built using MSBuild and use .NET Framework 4.0.

My goal is to be able to runs performance checking campaigns (using dotTrace profiler) on our CIS (Continuous Integration Server), where some guys are testing the applications everyday.

The package are build using teamcity with the following options :
- Release mode
- Optimize flag : ON
- PDB removed

I've installed the dotTrace remote agent on the server and I can successfully connect to it.

Now the questions are :
- Is dotTrace able to profile an application if binaries are built using "Release" mode ?
- Is dotTrace able to profile an application if binaries are built using Optimize flag ?
- Is dotTrace able to profile an application if PDB are missing ?
- Will I get more detailled profiling results if I change a build option ?

Thanks

0

Dear Deminique,

Thank you for the details. Here my answers:


> - Is dotTrace able to profile an application if binaries are built using "Release" mode ?
Yes, it is.

> - Is dotTrace able to profile an application if binaries are built using Optimize flag ?
Yes, it is.

> - Is dotTrace able to profile an application if PDB are missing ?
Yes, except line-by-line profiling. PDB information is required to split IL functions into source code statements.

> - Will I get more detailed profiling results if I change a build option ?
It is incorrect question. You will get another results (another times, another count of calls, ...) if change build options. Debug application is much different then the release one. In fact they are different applications.


--
Mikhail Pilin

Senior Software Engineer
JetBrains GmbH
http://JetBrains.com 
"Develop with pleasure!"
0

Thanks for your answers.

I will not change my current build options since there is no real benefits for profiling, but I will keep the PDB files in place.

Regards

0

Please sign in to leave a comment.