Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #18717

Re: More efficient strcmp

From Stephen Sprunk <stephen@sprunk.org>
Newsgroups comp.lang.c
Subject Re: More efficient strcmp
Date 2012-03-13 17:28 -0500
Organization A noiseless patient Spider
Message-ID <jjohlq$8o7$1@dont-email.me> (permalink)
References <jjog0d$rcc$1@speranza.aioe.org>

Show all headers | View raw


On 13-Mar-12 16:59, pembed2012 wrote:
> I have created a more efficient strcmp function. However it only works on 
> big endian architectures. I would like someone with same to run some 
> timing tests to see how much is the speed up.
> 
> Thank you
> 
> int strcmp_fast(char* s,char* t){
>   uls=(unsigned long*)s;
>   ult=(unsigned long*)t;
>   if(*uls>*ult) return(1);
>   if(*uls<*ult) return(-1);
>   else return(strcmp(s,t));
> }

You can make lots of things faster if you aren't worried about the code
crashing or giving incorrect answers when called with valid inputs.

However, that is a rather dubious definition of "more efficient".

Note that any reasonable strcmp() implementation _does_ use the
multi-byte comparison trick; however, unlike your code, they also ensure
that the pointers are aligned, strings are not compared past their ends,
etc. so that the results are _correct_, and that does slow things down a
bit.  Ditto for memcmp().

S

-- 
Stephen Sprunk         "God does not play dice."  --Albert Einstein
CCIE #3723         "God is an inveterate gambler, and He throws the
K5SSS        dice at every possible opportunity." --Stephen Hawking

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

More efficient strcmp pembed2012 <once@was.enough.invalid> - 2012-03-13 21:59 +0000
  Re: More efficient strcmp Kleuske <kleuske@nowhere.net> - 2012-03-13 22:16 +0000
    Re: More efficient strcmp "BartC" <bc@freeuk.com> - 2012-03-13 22:25 +0000
      Re: More efficient strcmp Kleuske <kleuske@nowhere.net> - 2012-03-14 16:02 +0000
    Re: More efficient strcmp James Kuyper <jameskuyper@verizon.net> - 2012-03-13 18:30 -0400
    Re: More efficient strcmp Kaz Kylheku <kaz@kylheku.com> - 2012-03-13 23:05 +0000
  Re: More efficient strcmp James Kuyper <jameskuyper@verizon.net> - 2012-03-13 18:19 -0400
    Re: More efficient strcmp jacob navia <jacob@spamsink.net> - 2012-03-13 23:54 +0100
    Re: More efficient strcmp Gareth Owen <gwowen@gmail.com> - 2012-03-14 06:37 +0000
      Re: More efficient strcmp James Kuyper <jameskuyper@verizon.net> - 2012-03-14 07:32 -0400
  Re: More efficient strcmp Stephen Sprunk <stephen@sprunk.org> - 2012-03-13 17:28 -0500
  Re: More efficient strcmp Robert Wessel <robertwessel2@yahoo.com> - 2012-03-13 17:28 -0500
  Re: More efficient strcmp Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-03-13 22:43 +0000
    Re: More efficient strcmp "Joachim Schmitz" <nospam.jojo@schmitz-digital.de> - 2012-03-16 17:39 +0100
      Re: More efficient strcmp Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-03-16 18:17 +0000
  Re: More efficient strcmp Kaz Kylheku <kaz@kylheku.com> - 2012-03-13 23:03 +0000
    Re: More efficient strcmp Fritz Wuehler <fritz@spamexpire-201203.rodent.frell.theremailer.net> - 2012-03-14 15:55 +0100
      Re: More efficient strcmp Kenneth Brody <kenbrody@spamcop.net> - 2012-03-14 14:19 -0400
  Re: More efficient strcmp "BartC" <bc@freeuk.com> - 2012-03-13 23:25 +0000
  Re: More efficient strcmp Bl0ckeduser <bl0ckedusersoft@gmail.com> - 2012-03-13 21:42 -0500
    Re: More efficient strcmp Tim Rentsch <txr@alumni.caltech.edu> - 2012-03-14 15:17 -0700
      Re: More efficient strcmp Bl0ckeduser <bl0ckedusersoft@gmail.com> - 2012-03-14 19:06 -0400
        Re: More efficient strcmp Tim Rentsch <txr@alumni.caltech.edu> - 2012-03-15 18:53 -0700
  Re: More efficient strcmp Andre <lodwig@pathme.de> - 2012-03-14 14:26 +0100
  Re: More efficient strcmp China Blue Water Navy <chine.bleu@yahoo.com> - 2012-03-14 12:39 -0700
  Re: More efficient strcmp vaysagekv <kvvaysage@gmail.com> - 2012-03-15 18:24 +0530
    Re: More efficient strcmp gof@somewhere.invalid (Gof) - 2012-03-15 13:00 +0000
      Re: More efficient strcmp "BartC" <bc@freeuk.com> - 2012-03-15 15:05 +0000
        Re: More efficient strcmp Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-03-25 16:45 +0000

csiph-web