title: c# WCF client-server messaging/transaction optimization
body: <p>I have a client-server application I'm trying to optimize.
  I built a psydo-client to bang against my server's apis.
  I run the client on one box &amp; the server on another.
  I'm trying to correlate the times of certain events between the two where the times are recorded in terms of each local system's local system clock.
  The client sends a request and records that time.
  The server receives that request and records that time.
  The server does it's processing an forms/sends a response, recording that time.
  The client records the time of the it finishes receiving the response.</p>
  
  <p>Ultimately, what I'm trying to do is improve through-put as measured by the client's request-sent and response-received.</p>
  
  <p><strong>Am I missing something by trying to meaningfully correlate the clocks on the two systems?  Is this even possible?  If so how is it done? How do you measure/improve upon this through-put?</strong></p>
  
  <p>Currently my client is telling me I'm doing 25 requests-sent-to-response-received per second (or an interval of 0.04 seconds average) for 19,000+ transactions.
  But the two time stamps on the server is tellimg me I'm turning around a transaction, request-received-to-response-replied in 0.020 seconds average (scaled up capacity ~ max: 50 transactions/sec)
  Meaning 1/2 the beginning-to-end time is data 'on the line' (to credit Vince Vaughn).
  If I have to regard the time on the line as fixed and can only optimize the server turnaround that means, and assuming I can reduce this to 0, then my max througt-put can be no greater than 50 transactions per second.
  I'd think this could be reduced to a 1/100th of this.  Only 50 transactions / second seems crazy slow for a 1G network where a packet only hasto travel one switch and the entire length of about 50' of cable.</p>
  
  <p>So how to you correlate the two system times?
  How do you measure this through-put?</p>