Sorry for the previous blank email...

ok, further investigation shows most time in GotSOAPReply is spent in
'xml2list' (XML time) and in the callbacks (CB time):

SOAPRequest time: 250623 microseconds per iteration
  XML time:  132933 microseconds per iteration
  CB ::SSOAuthentication1 AuthenticateCallback sso_authenticated
  CB time: 594444 microseconds per iteration
SOAPReply time: 745462 microseconds per iteration

SOAPRequest time: 246234 microseconds per iteration
  XML time:  629189 microseconds per iteration
  CB ::Addressbook1 FindMembershipCallback {::Addressbook1
FindMembershipDone {::MSN::ABSynchronizationDone 1}}
  CB time: 667627 microseconds per iteration
SOAPReply time: 1329095 microseconds per iteration

SOAPRequest time: 286000 microseconds per iteration
  XML time:  1117484 microseconds per iteration
  CB ::Addressbook1 ABFindAllCallback {::Addressbook1 ABFindAllDone
{::MSN::ABSynchronizationDone 1}}
  CB time: 6183310 microseconds per iteration
SOAPReply time: 7402998 microseconds per iteration

SOAPRequest time: 244129 microseconds per iteration
  XML time:  15804 microseconds per iteration
  CB ::ContentRoaming1 GetProfileCallback {::ns setInitialNicknameCB HDN HDN} {}
  CB time: 2674448 microseconds per iteration
SOAPReply time: 2692246 microseconds per iteration


On Thu, Aug 7, 2008 at 7:31 PM, Álvaro J. Iradier <[EMAIL PROTECTED]> wrote:
> HI, the other day, talking to youness we thought amsn was being quite
> unresponssive on start and connection due to sockets blocking while
> resolving the host names (that is, the dns resolution was being
> synchronous and blocking, even when the sockets are asynchronous).
>
> I made a small tcl extension to allow for asynchronous resolution. The
> idea was to replace the socket command, and when -async option was
> used, return inmediately, launch a thread to resolve hostname, and
> when resolution was done, call the original socket command with the
> resolved IP instead of the hostname.
>
> The problem is this can't be done that easy, because when socket
> -async is used, it should return inmediately and return a channel
> identifier. As we don't know the channel identifier until the real
> socket is created, what should the extension socket wrapper return if
> the socket won't be created until hostname is resolved?
>
> So, i just made a new command that resolves a hostname in background
> and callbacks a procedure with the resolved IP when finished.
>
> Before starting to change the connection code to use the resolver, I
> decided to measure the time spen on socket creation. I made a
> socket_wrapper function like this in amsncore.tcl:
>
> --------------
>
> proc socket_wrapper { args } {
>        puts "socket_wrapper $args"
>
>        puts [time {
>        set sock [eval [linsert $args 0 _oldsocket] ]}]
>
>        return $sock
> }
>
> rename socket _oldsocket
> rename socket_wrapper socket
>
> --------------
>
> running and connection amsn displays this:
>
> socket_wrapper -server phony 60671
> 415 microseconds per iteration
> socket_wrapper -myaddr 127.0.0.1 -server lockSvrNew 64123
> 323 microseconds per iteration
> socket_wrapper -async 207.46.111.90 1863
> 339 microseconds per iteration
> socket_wrapper login.live.com 443
> 343022 microseconds per iteration
> socket_wrapper contacts.msn.com 443
> 289655 microseconds per iteration
> socket_wrapper contacts.msn.com 443
> 251321 microseconds per iteration
> socket_wrapper -server abook::dummysocketserver 6891
> 148 microseconds per iteration
> socket_wrapper -async firewall.amsn-project.net 80
> 59207 microseconds per iteration
> socket_wrapper storage.msn.com 443
> 298166 microseconds per iteration
> socket_wrapper contacts.msn.com 443
> 254806 microseconds per iteration
> socket_wrapper -async 207.46.27.197 1863
> 353 microseconds per iteration
> socket_wrapper -async 207.46.26.66 1863
> 335 microseconds per iteration
>
>
> So, it looks like connections with name resolution are taking about
> 0,06 seconds (like http connection to firewall.amsn-project.net), and
> https connections are taking about 0,25-0,3 seconds. That's pretty
> quick. However, it looks like things are locking longer, amsn seems
> quite unresponsive while connection.
>
> It looks like maybe name resolution is not the bottleneck. The TLS
> layer is taking some time, for sure, but I think problem is SOAP
> replies are read synchronously, and blocking. These are the new
> timings:
>
> ocket_wrapper -server phony 61199 time: 238 microseconds per iteration
> socket_wrapper -myaddr 127.0.0.1 -server lockSvrNew 62966 time: 282
> microseconds per iteration
> socket_wrapper -async 207.46.111.90 1863 time: 20350 microseconds per 
> iteration
> socket_wrapper login.live.com 443 time: 228129 microseconds per iteration
> SOAPRequest time: 295017 microseconds per iteration
> SOAPReply time: 819305 microseconds per iteration
> socket_wrapper contacts.msn.com 443 time: 236107 microseconds per iteration
> SOAPRequest time: 243931 microseconds per iteration
> socket_wrapper contacts.msn.com 443 time: 232883 microseconds per iteration
> SOAPRequest time: 240097 microseconds per iteration
> socket_wrapper -server abook::dummysocketserver 6891 time: 177
> microseconds per iteration
> socket_wrapper -async firewall.amsn-project.net 80 time: 2317
> microseconds per iteration
> SOAPReply time: 1672309 microseconds per iteration
> socket_wrapper storage.msn.com 443 time: 241007 microseconds per iteration
> SOAPRequest time: 248864 microseconds per iteration
> SOAPReply time: 10365145 microseconds per iteration
> SOAPReply time: 2872543 microseconds per iteration
>
> Look at that SOAPReply times!! 0,8 seconds, 1,67 seconds, 2,87 seconds
> and 10,36 seconds!!!! During that time AMSN is completely blocked!!
>
> So, I'm going to fix this first, and then i'll think about the dns
> resolve, maybe it's not worth the effort.
>
> If you have any questions or want to help me, just find me at amsn :)
>
> Greets.
>
> --
> (:===========================================:)
>  Alvaro J. Iradier Muro - [EMAIL PROTECTED]
>



-- 
(:===========================================:)
 Alvaro J. Iradier Muro - [EMAIL PROTECTED]

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Amsn-devel mailing list
Amsn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amsn-devel

Reply via email to