[Mono-list] WCF via TCP is frightfully slow
mauzik
mauzik at centrum.cz
Mon Sep 30 18:08:31 UTC 2013
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.
More information about the Mono-list
mailing list