Hi Jay,

On Sunday, 26 June 2016 at 16:40:08 UTC, Jay Norwood wrote:
After watching Andre's sentinel thing, I'm playing with strlen on char strings with 4 terminating 0s instead of a single one. Seems to work and is 4x faster compared to the runtime version.

Please keep general discussions like this off the announce list, which would e.g. be suitable for announcing a fleshed out collection of high-performance string handling routines.

nothrow pure size_t strlen2(const(char)* c) {
 if (c is null)
   return 0;
 size_t l=0;
 while (*c){ c+=4; l+=4;}
 while (*c==0){ c--; l--;}
 return l+1;
}

A couple of quick hints:
- This is not a correct implementation of strlen, as it already assumes that the array is terminated by four zero bytes. That iterating memory with a stride of 4 instead of 1 will be faster is a self-evident truth. - You should be benchmarking against a "proper" SIMD-optimised strlen implementation.

 — David
  • 4x faster strlen with 4 ch... Jay Norwood via Digitalmars-d-announce
    • Re: 4x faster strlen ... David Nadlinger via Digitalmars-d-announce
      • Re: 4x faster str... Jay Norwood via Digitalmars-d-announce
        • Re: 4x faster... chmike via Digitalmars-d-announce
          • Re: 4x fa... chmike via Digitalmars-d-announce
            • Re: ... Ola Fosheim Grøstad via Digitalmars-d-announce
              • ... Jay Norwood via Digitalmars-d-announce
                • ... Ola Fosheim Grøstad via Digitalmars-d-announce
                • ... Jay Norwood via Digitalmars-d-announce
                • ... Ola Fosheim Grøstad via Digitalmars-d-announce
                • ... Jay Norwood via Digitalmars-d-announce
                • ... Ola Fosheim Grøstad via Digitalmars-d-announce

Reply via email to