Hi, I did not give up use WCF on project. I tried profile application with 1000 receive requests and I have this part of result:
Method call summary Total(ms) Self(ms) Calls Method name 167910 53 2000 System.ServiceModel.Channels.NetTcp.TcpDuplexSessionChannel:TryReceive (System.TimeSpan,System.ServiceModel.Channels.Message&) 132676 0 1 (wrapper runtime-invoke) <Module>:runtime_invoke_void_object (object,intptr,intptr,intptr) 132676 8 1 Client.Program:Main (string[]) 131651 18 1002 (wrapper managed-to-native) object:__icall_wrapper_mono_remoting_wrapper (intptr,intptr) 131646 1 1000 (wrapper remoting-invoke) Remote.Service.IPersonService:GetPerson () 131632 1 1002 (wrapper runtime-invoke) <Module>:runtime_invoke_object_object_object_intptr&_intptr& (object,intptr,intptr,intptr) 131631 12 1002 System.Runtime.Remoting.Proxies.RealProxy:PrivateInvoke (System.Runtime.Remoting.Proxies.RealProxy,System.Runtime.Remoting.Messaging.IMessage,System.Exception&,object[]&) 131468 2 1002 System.ServiceModel.ClientRealProxy:Invoke (System.Runtime.Remoting.Messaging.IMessage) 131466 18 1002 System.ServiceModel.ClientRealProxy:DoInvoke (System.Runtime.Remoting.Messaging.IMessage) 131313 1 1000 System.ServiceModel.MonoInternal.ClientRuntimeChannel:Process (System.Reflection.MethodBase,string,object[]) 131312 12 1000 System.ServiceModel.MonoInternal.ClientRuntimeChannel:DoProcess (System.Reflection.MethodBase,string,object[]) 131183 10 1000 System.ServiceModel.MonoInternal.ClientRuntimeChannel:Request (System.ServiceModel.Description.OperationDescription,object[]) 116290 7 1000 (wrapper runtime-invoke) <Module>:runtime_invoke_bool__this___TimeSpan_intptr& (object,intptr,intptr,intptr) 100804 17 2000 unknown method 0x9d5c97c 100786 100786 2000 unknown method 0x9d5c9e4 70224 7 6000 System.ServiceModel.Channels.MessageHeader:CreateHeader (string,string,object,bool) 70216 6 6000 System.ServiceModel.Channels.MessageHeader:CreateHeader (string,string,object,bool,string) 70210 14 6000 System.ServiceModel.Channels.MessageHeader:CreateHeader (string,string,object,bool,string,bool) 70136 7 6000 System.Runtime.Serialization.DataContractSerializer:.ctor (System.Type) 70128 37 6000 System.Runtime.Serialization.DataContractSerializer:.ctor (System.Type,System.Collections.Generic.IEnumerable`1<System.Type>) 69490 35 7002 System.Runtime.Serialization.DataContractSerializer:PopulateTypes (System.Collections.Generic.IEnumerable`1<System.Type>) 69296 22 7002 System.Runtime.Serialization.DataContractSerializer:RegisterTypeAsKnown (System.Type) 68976 5 3000 System.ServiceModel.Channels.MessageHeader:CreateHeader (string,string,object) 68544 50 25797 System.Collections.ObjectModel.Collection`1:Add (T) 68533 22 1000 System.ServiceModel.MonoInternal.ClientRuntimeChannel:CreateRequest (System.ServiceModel.Dispatcher.ClientOperation,object[]) 68475 38 25008 System.Runtime.Serialization.KnownTypeCollection:InsertItem (int,System.Type) 67898 6 3002 System.Runtime.Serialization.KnownTypeCollection:TryRegister (System.Type) 67867 21 3002 System.Runtime.Serialization.KnownTypeCollection:DoTryRegister (System.Type) 66993 29 1999 System.ServiceModel.Channels.NetTcp.TcpBinaryFrameManager:ReadSizedMessage () 65232 13 6008 System.IO.Stream:ReadByte () 65202 15 8008 System.Net.Sockets.NetworkStream:Read (byte[],int,int) 65181 14 8008 System.Net.Sockets.Socket:Receive (byte[],int,int,System.Net.Sockets.SocketFlags) 65161 9 8008 System.Net.Sockets.Socket:Receive_nochecks (byte[],int,int,System.Net.Sockets.SocketFlags,System.Net.Sockets.SocketError&) 65151 65151 8008 (wrapper managed-to-native) System.Net.Sockets.Socket:Receive_internal (intptr,byte[],int,int,System.Net.Sockets.SocketFlags,int&) 61898 2 1000 System.ServiceModel.Channels.MessageHeaders:set_ReplyTo (System.ServiceModel.EndpointAddress) It is only interesting part of whole result. I do not understand why is there unknown method (unknown method 0x9d5c9e4). This method consumes 100786 ms which is significant part of the total run of the application. Other method with high time consumption is ystem.Net.Sockets.Socket:Receive_internal (intptr,byte[],int,int,System.Net.Sockets.SocketFlags,int&). In my opinion unknown method 0x9d5c9e4 is method from external shared library. Does anyone know what could be the problem and how to solve this performance issue? -- View this message in context: http://mono.1490590.n4.nabble.com/WCF-via-TCP-is-frightfully-slow-tp4660946p4661001.html Sent from the Mono - General mailing list archive at Nabble.com. _______________________________________________ Mono-list maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-list
