I am using WCF for IPC.
I have very strict performance needs, so the whole operation can take only a few milliseconds. (blocked by 3-4ms I'd say...) However, WCF open takes approx 10ms. I looked at some performance testings made and I saw I can get much better results, though I wasn't able to do so. I can just save an open connection, but I would really like to avoid it.
I already tried compiling in release, and removing security etc. (that only lowered it by the tiniest bit...)
This is my configuration (it's defined by code):
NetTcpBinding tcpBinding = new NetTcpBinding(SecurityMode.Message, false)
{
SendTimeout = TimeSpan.FromSeconds(1),
ReceiveTimeout = TimeSpan.FromSeconds(1),
OpenTimeout = TimeSpan.FromMilliseconds(500),// FromMinutes(1),
TransactionFlow = false,
TransferMode = TransferMode.Buffered,
TransactionProtocol = TransactionProtocol.OleTransactions,
HostNameComparisonMode = HostNameComparisonMode.StrongWildcard,
ListenBacklog = ushort.MaxValue,
MaxBufferPoolSize = 20 * 1024 * 1024,
MaxBufferSize = 20 * 1024 * 1024,
MaxConnections = ushort.MaxValue,
MaxReceivedMessageSize = 20 * 1024 * 1024,
};
// Windows authentication
tcpBinding.Security.Transport.ClientCredentialType = TcpClientCredentialType.Windows;
tcpBinding.Security.Transport.ProtectionLevel = System.Net.Security.ProtectionLevel.EncryptAndSign;
return tcpBinding;
Can anyone suggest anyway of improving this configuration? Thanks.