A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2003-April/034431.html below:

[Python-Dev] _socket efficiencies ideas

[Python-Dev] _socket efficiencies ideasMarcus Mendenhall marcus.h.mendenhall@vanderbilt.edu
Wed, 9 Apr 2003 14:14:16 -0500
On Wednesday, April 9, 2003, at 01:49 PM, Martin v. L=F6wis wrote:

> Marcus Mendenhall wrote:
>
>> The getsockaddr call uses them (actually the correct name for one of=20=

>> the flags is AI_NUMERICHOST, not AI_NUMERIC as I originally stated),=20=

>> and its part of the BSD sockets library, which is basically what the=20=

>> python socketmodule wraps.
>
> More importantly, it is part of RFC 2553, which Python uses; it is =
also
> part of Winsock2.
>
>> I guess intercepting all numeric is OK, it is just less efficient=20
>> (since it requires a trial parsing of an address, which is wasted if=20=

>> it is not all numeric), and because it is so easy to implement=20
>> <numeric>.
>
> But isn't the same trial parsing needed to determine presence of the=20=

> "<numeric>" flag? The trial parsing Guido proposes usually stops with
> the first letter in a non-numeric address, and accesses up to 16=20
> letters
> for a numeric address.
Yes, but a compare of the head of a string to a constant is probably=20
something which requires 1% of the cpu time of a sscanf.  Just:
if (string[0]=3D=3D'<' && not strncmp(string,"<numeric>",9)) {whatever}
the first compare avoids even a subroutine call in the most likely case=20=

(string does not begin with <numeric>) but then checks extremely=20
quickly if it is right after that.

Even though cpu time is cheap, we should save it for useful work.

Marcus




RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4