Pipeline Performance

At the moment I’m working on one of the world’s biggest civilian project and one of the world’s biggest biztalk implementation. In order to achive strict SLA targets each and every milliseconds Biztalk takes inside the processing time frame is really critical for us. I’m in the process of tuning performance in our custom pipeline component. We are taking different approaches to test the performance. I was experimenting with pipeline.exe -t option to calculate the time it takes after each stage. I took a default receive pipeline (equivalent to pass through), and run the test with pipleline.exe, following is the result i obtained Decode Stage: before Execute Decode Stage: after Execute, elapsed time is 00:00:00 Disassemble Stage: before Execute Disassemble Stage: after Execute, elapsed time is 00:00:00 Disassemble Stage: before GetNextOutputMessage Disassemble Stage: after GetNextOutputMessage, elapsed time is 00:00:00 Validate Stage: before Execute Validate Stage: after Execute, elapsed time is 00:00:00 ResolveParty Stage: before Execute ResolveParty Stage: after Execute, elapsed time is 00:00:00 Disassemble Stage: before GetNextOutputMessage Disassemble Stage: after GetNextOutputMessage, elapsed time is 00:00:00 Pipeline execution overall elapsed time: 00:00:00.0311258 so, an empty Biztalk receive pipeline takes 31 millisecond to process without any custom coding on top of it. Of course there are lot of factors going to effect this figure (CPU speed, no of CPU’s, memory etc, etc). My next test will be to find the time from entry point to exit point with simple subscription. Let see how i’m going to achive this.