2

I'm using dotTrace to profile a WCF .Net web application written in C# and running on an IIS server. One entry shows 7.77 seconds spent in PipelineRuntime.ProcessRequestNotification, with the following child processes

  • 0.03 seconds in MyMethod
    • 0.016 seconds in HttpRequest.GetHeaders
  • 0.2 seconds in [Unsafe stack walking]

That leaves well over 7 seconds completely unaccounted for. Does anyone have a sense of where that missing time could be going? Is it possible that something in MyMethod is eating up that time, but dotTrace just isn't reporting it properly?

Dan Forbes
  • 2,734
  • 3
  • 30
  • 60
  • 1
    My sympathies. Why people put up with this is beyond me. If you look at the last paragraph of [*this post*](http://stackoverflow.com/questions/4832642/when-is-optimization-premature/4832698#4832698) it mentions the technique I use. – Mike Dunlavey Apr 08 '15 at 19:12

1 Answers1

0

Unaccounted time in this case is PipelineRuntime.ProcessRequestNotification's own time. That means that code of that particular function and all inlined by JIT functions consumed ~7 seconds.

If we assume that but it should not take so much we must investigate why. There are two possibilities - this function is called too many times (Tracing profiling type will help to check that) or some of the instructions in that function are slow (Line-by-Line profiling type will help you analyze relative instructions times inside).

Alexey Korovin
  • 342
  • 1
  • 8