1

I've been looking into this bug for a week or so, and after all attempts to figure out how to fix it I still have not done so. That issue is the title of this post. When I go into my c# project and increment the AssemblyVersion to a newer version I get a small performance boost. When I decrement the AssemblyVersion, I get a large noticeable performance boost.

At this time I am working on an 64 bit machine with an AMD processor, and if I switch to an Intel machine (also 64 bit), this issue does not occur. The project I am working on is reliant on 2 or 3 Microsoft dlls and 1 dll created by someone who worked on this project in the past whom I can not contact (built in x86).

In VisualStudio 2013 I analyzed the performance when the Assembly version number was incremented, decremented, and kept the same. From what I could see it looked like the application on average was using less threads on the slower version, and having more collisions.

I am going to be honest and say I am picking up a project someone in the past was working on, and I am definitely a C# amateur. Because of this I have spent the past week or so trying to research exactly what the AssemblyVersion and AssemblyFileVersion are used for, how the AssemblyInfo.cs is built with the project, and how dlls are built with the project. Though I still am a little bit hazy on the facts. Here are a few places I have looked in my research about them:

DLL hell

Differences between assemblyversion assemblyfileversion and assemblyinformationalversion

Process Interoperability

Cross assembly causes performance hit

I have also run the Visual studio Performance and Diagnostics tool to try and visualize the cpu's strain graphically, and to see the number of times a function was called during the application's lifetime. All 3 options (increment, decrement, stay the same) had the function that runs the application (a timer that goes off every 50 ms) run more if it was a slower version, and less if it was a faster version.

I have tried rebuilding the dll being used with our project to x64 and building the project as Any CPU, but that too did not work. After that I hit a brick wall and have absolutely no idea where to look for more help / info about my problem I am encountering.

I am really sorry if this is difficult to answer from what I have given, or if anything is unclear. If anybody needs any clearer explanation, I will attempt to reply and do so. After 4 eastern though I wont be able to reply to questions until tomorrow in the morning.

Thanks everyone

edit* Performance measurements were made with the stopwatch class (bad idea I know). The performance is noticeably different in how fast the GUI will refresh the results on a page. (there are around 3-10 messages which can be displayed per second on the GUI)

Community
  • 1
  • 1
jdude0822
  • 11
  • 2
  • How are you measuring "performance"? How are you quantifying the performance "boost" before and after the version change? – Ron Beyer Aug 13 '15 at 17:52
  • @RonBeyer thanks for the reply Ron, sorry for being unclear about that. This is actually important, the performance "boost" is measured the amount of time it takes for a mesage to be processed in a timer that goes off every 50ms. I am using the stopwatch class (I know its not the best thing to do) but the stopwatch measures a clear difference. Performance dips from 30-40 ms per message to 80-90 ms per message. – jdude0822 Aug 13 '15 at 17:57

0 Answers0