thanks for your work, and welcome back :)

On Thu, Aug 7, 2008 at 20:18, Álvaro J. Iradier <[EMAIL PROTECTED]> wrote:
> 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
>



-- 
Boris FAURE (aka billiob)
-------------------------------------------------------------------------
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