Analyze web service performance: simultaneous 32 and 64 bit targets - visual-studio-2012

I am trying to analyze the performance of a web service project, by running it through WcfTestClient.exe. I have both that exe and the web service project set as targets in a performance analysis session. The exe is set as launch, but not to collect samples. The project is set to collect samples, but not as launch.
Unfortunately, when I try to start the session, I get an error that reads "Profiling 64-bit processes is not supported by this version of the profiling tools. Please use the profiling tools from the x64 directory." What I assume is happening is that the session starts by starting up WcfTestClient.exe, which is a 32 bit application. Because of that, it starts up the 32 bit version of the profiling tools. But my web service project is 64 bit, so when it reaches that point it throws that error since the 32 bit tools can't profile it.
Is there some way to force the session to use the 64 bit tools? Or perhaps there's a 64 bit version of the wcf test client?
Also before anybody calls me on this: I posted about this on the MSDN forums, and got a fairly useless non-answer here: http://social.msdn.microsoft.com/Forums/en-US/vstsprofiler/thread/ff54e1fc-b9fb-47d4-9e9f-a3c552a6f242

Related

Profiling arbitrary CUDA applications

I know of the existence of nvvp and nvprof, of course, but for various reasons nvprof does not want to work with my app that involves lots of shared libraries. nvidia-smi can hook into the driver to find out what's running, but I cannot find a nice way to get nvprof to attach to a running process.
There is a flag --profile-all-processes which does actually give me a message "NVPROF is profiling process 12345", but nothing further prints out. I am using CUDA 8.
How can I get a detailed performance breakdown of my CUDA kernels in this situation?
As comments suggest, you simply have to make sure to start the CUDA profiler (now it's NSight Systems or NSight Compute, no longer nvprof) before the processes you want to profile. You could, for example, configure it to run on system startup.
Your inability to profile your application has nothing to do with it being an "app that involves lots of shared libraries" - the profiling tools profile such applications just fine.
I've been looking for the process attach solution too but found no existing tool.
A possible direction is to use lower CUDA API to build a tool or integrate to your tool. See cupti: https://docs.nvidia.com/cupti/r_main.html#r_dynamic_detach

Understanding DebugDiag Tool

I have been trying to understand what is the cause of high memory usage from processes in the windows server I have. I installed that tool DebugDiag 1.2 to try to find the problem.
Here is what runs in my server:
I have the IIS server which has a decent number of pool applications (68 pool applications). For each pool application there are at least 4 applications.
Recently, I have faced problems related to high memory usage, causing the server to work at 97% of memory usage or higher.
It was working fine when I took this printscreen below. However, the memory usage will easily get higher.
Task Manager:
With that being said, I have been trying to understand how to use the tool "DebugDiag1.2" from microsoft to find something (part of the source code, an sql procedure) that might help me locate what is causing the problem.
I read that we can't limit the memory for each IIS pool application, so I guess the solution would be trying to optmize the application. But first I need to know where to start.
I hope someone can help me out.

Is there any difference between "Platform 32-bit" or "Platform 64-bit" for Azure Functions?

When I create Azure Functions, it will set "Platform 32-bit" for default. However I normally set ASP.NET MVC, OWIN or any other projects as 64bit.
Platform 32-bit for default
I'm wondering with "What the difference with 32-bit or 64-bit for Azure Functions"?
I guess this effects with NuGet Package reference and Memory allocation. However as Azure Functions can only available to assign up to 1536 MB, therefore 32-bit or 64-bit would be no effects at all.
Is there any definite reason or recommendation to set 64-bit?
Any advice will be very much appreciated.
I would not suggest switching the Functions worker process to 64 bit. It will not run any better, and the memory usage will end up being higher (as it always is for 64 bit). Also, at this point Functions has only been tested in 32 bit mode so you may run into some unexpected issues in 64 bit.
Update (2/6/2017): see this question for latest, as well as https://github.com/projectkudu/AzureFunctionsPortal/issues/894.

Instrumentation profiling for Windows store apps

We are developing a windows store app with XAML and we would like to run profiler of instrumentation type and get results with function execution timings (How long each function takes to execute).
But when we try to add the root project to the target on a instrumentation type profiling, it says "Switch to Sampling mode". If we switch to sampling mode, all that I can see is inclusive samples and exclusive samples. How to get function execution time tracks?
Based on this documentation from Microsoft it lists it as not supported.
These profiling features and options are not supported when profiling Windows Store apps
Profiling managed and native code using the instrumentation method.
I haven't been able to find any alternative solutions either.

Profiling Node.js web application on Linux

Which would be the best option to profile a Node.js application on linux? I tried https://github.com/c4milo/node-webkit-agent and https://github.com/baryshev/look (this is based on nodetime), but they both seem pretty experimental. What surprises me the most is that the results reported by these tools are different.
The major disadvantages for look are that the heap snapshots aren't very relevant and you can't CPU profile for more than 1 minute.
With node-webkit-agent the Chrome browser is running out of memory.
I'm doing profiling while sending requests using JMeter to my web application.
Not sure if you're willing to use an online service instead of a module, but you could give http://nodefly.com/ a try, it's free and has worked quite good for me.

Resources