Azure SDK 1.4 August Release - How to Profile
Hi YnoYno,
I am trying to involve someone familiar with this topic to further look at this issue. There might be some time delay. Appreciate your patience.
Thanks.
Hi YnoYno,
Does it work for other DLLs or other functions in the same DLL?
The Profiling Tool doesn't care about whether the class is singleton or not. A function is not showed in the report may because that the function is called few (In the other words, the function is not using much CPU). To understand how profiling tool works, please see Understanding Sampling Data Values in Profiling Tools.
> Does the VS profiler can profile facebook apps (both none Azure and Azure apps)?
As far as I know, the Profiling Tools work for .NET application only. The profiling feature in Azure is based on The Visual Studio Profiling Tools. So if it is not an Azure application, you might directly use these tools in Visual Studio. Please see Analyzing Application Performance by Using Profiling Tools.
By the way, better forum for Visual Studio Profiling Tools is Visual Studio Performance Tools (Profiler).
Thanks.
Hi Wenchao Zeng,
Thats the only dll from my solution that doesnt appear in the report. The method name displayed is a hex value (eg 0x060000F4). The dll is an interface class between the web and the database. When ever I click the hex
value from the summary page, the page displays its caller, which is a named function from the web part and the functions it calls which are named methods as well.
I dont really know the problem here and I've also tried using the VSPerfReport and this doesn't produce a better report (all of the project dll is not recognized).
Regarding the Facebook App: We created a web app using MVC2 deployed it on the cloud and host it in facebook as a facebook app. Im also trying to produce performance report for this app but the reports that I get doesn't display methods from our application/dlls.
Thanks for your help and reply.
Hi YnoYno,
Visual Studio Team System FAQ (Why am I seeing function addresses instead of function names when I try to analyze a performance report?) states that you are not resolving symbols correctly for your performance reports.
It provides several options for resolving issue. The last option is to go to Tools->Options->Debugger->Symbols and add a symbol file location (a directory path).
Thanks.
hello,
I already saw that page and followed its solution but I still can't make it work... Ill try to point a directory to the main solution and hopefully it would work. The thing is that its the only one that is not loaded or recognized by the report. I'll get back on you after I point it to the main solution's folder. Thank you very much for your help. By the way I reposted the topic on the forum you've gave me, if youre interested : http://social.msdn.microsoft.com/Forums/en-US/vstsprofiler/thread/55d5b0ca-f538-4a10-bf26-acb9ed5564cc.
Thanks
(edit 08252011)
Hi, I did add a symbol pointer to the main solution folder and it still not working... I've noticed that most of the methods I see in the report came from the main web project (web role project). Am I missing something during the publishing to the cloud, do I need to append the other project's dll or something? Additional question, I don't know if its a dumb one, can I profile an azure app using the cluod compute emulator?
Thanks for the help, I really appreciate it.
Hi Yno Yno,
The August 2011 Release of the Visual Studio Tools (1.4) has added Windows Azure profiling support , you may refer to the following articles to check your steps profiling your applications while they are running live in the cloud.
· http://msdn.microsoft.com/en-us/library/hh369930.aspx
Talking to profile an azure app using the cloud compute emulator, I tried to use Launch Performance Wizard to add a target project but it seems that it only support web role or worker role project instead of windows azure project. And then the added project will be emulated in local ASP.NET development Server not in cloud compute emulator. So I am not sure that whether can profile an azure app using the cloud compute emulator.
In addition, there is a Microsoft tool NP .NET Profiler may help you. It can troubleshoot following types of .NET applications: Azure Cloud Service ASP.NET Web Applications .NET Windows Applications (WCF, WPF) .NET Console Applications .NET Window Services .NET COM+ Components. You can have a try. Also, the forums thread http://social.msdn.microsoft.com/Forums/en-US/windowsazure/thread/78391eb1-357d-4431-8a4b-7f2ba80db205/ talks about this topic, by adding some code in your application to profile a worker role.
Thanks.Hi Connie Ma,
Thanks for the response. I'm feeling hopeless though about this problem. I already saw those links that you've given me but nothing helps. My main concern is profiling the method of a project which is referenced by the main web role, it acts as our interface towards the database layer and most of the bottle neck (based on the reports) are coming from that project but the profiler doesnt show the method name that causes it. I'm feeling hopeless, my last option would be to rewrite my code so that the dblayer interface would be a simple class inside the web role and see if it would be profiled.
Thanks
Hi YnoYno,
Sorry for the late response.
How is your application going?
I checked the other thread you reposted in profiler forum http://social.msdn.microsoft.com/Forums/en-US/vstsprofiler/thread/55d5b0ca-f538-4a10-bf26-acb9ed5564cc. From the output we can find that a lot of your symbols cannot be loaded. Did you configure your symbol paths within Visual Studio click tools -> options -> debugging? Please check the Microsoft Symbol Servers selection.
In addtion, your web application is running in the azure while the system drive in azure VM is D:, that's why it is looking for the dll in the D: drive.
Some of your failed information is "Failed to load symbols for E:". In azure VM, E: drive contains the customer’s role code. So please add your own symbol file path to Visual Studio click tools -> options -> debugging also.
Hope this may help you.
Thanks.
Regards,
Connie Ma
Microsoft Online Community Support
Hi Connie Ma,
Thanks for the response. I've configure the symbol path before, but it didn't work. (I'm thinking that it won't work cause the application is already in cloud rather than in debug mode, would it matter?)
What I did is to temporarily move the db layer interface project into a class on the main website project. This somehow solve my problem. The thing is that there are still functions that appears in hexadecimal values but I managed to get a decent result.
I'll try to figure things out along the way and post here if I manage to find something.
Thanks guys for your response and help.
Hi Yno Yno,
Glad to hear that you have found a workaround about this issue.
If you encounter other problems about profling using your new method, you are encouraged to create a new thread. We will be happy to help you about azure issues :)
Hello,
I've encountered the same issues as Yno Yno, when attempting for profile an Azure role. I've followed the suggestion of setting the symbol paths in Visual Studio Debugging Options and still have encountered the same issues. Just to recap the issue when profiling in Azure:
The workaround stated above (moving all code into a single dll) is not a valid workaround. Any help with this issue would be greatly appreciated.
Thanks!
You can instrument referenced dlls using VSInstr.exe from Visual Studio Tools (make sure to pick up correct 32/64 bit based on your configuration) as part of the build process (if building from Visual Stduio, you can specify in Post Build event section of project property to instrument it). This would ensure that profiling data is captured for your dll. Before downloading report, make sure that you have given path of pdbs files of your instrumented dlls in Symbol path in Visual Studio. This would ensure that you are seeing function names rather than hex values.
Thanks
|