Bypassing the server at the start of the launch is an IIS application pool, but in your question you stated that although the first request was 900 ms, only 16 ms was spent on the server request in accordance with the firewall. If true, this suggests that something is happening on the client side.
One possibility is that some client applications that serialize objects generate and compile serialization code for these data types at runtime, which can lead to slower startup performance.
http://msdn.microsoft.com/en-us/library/aa751883.aspx
http://msdn.microsoft.com/en-us/library/ms733901.aspx
I am not familiar with protobuffs, but compiling the serialization code is a compromise, which makes the first call much slower, but speeds up subsequent calls.
Not sure if this is your initial cost, but it is an opportunity.
source share