Skip site navigation (1) Skip section navigation (2)

Re: Faster StrNCpy

From: mark(at)mark(dot)mielke(dot)cc
To: "Strong, David" <david(dot)strong(at)unisys(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Faster StrNCpy
Date: 2006-09-27 23:26:40
Message-ID: 20060927232639.GA15401@mark.mielke.cc (view raw or flat)
Thread:
Lists: pgsql-hackerspgsql-patches
On Wed, Sep 27, 2006 at 07:08:05AM -0700, Strong, David wrote:
> We sometimes see TupleDescInitEntry () taking high CPU times via
> OProfile. This does include, amongst a lot of other code, a call to
> namestrcpy () which in turn calls StrNCpy (). Perhaps this is not a
> good candidate right now as a name string is only 64 bytes.

Just wondering - are any of these cases where a memcpy() would work
just as well? Or are you not sure that the source string is at least
64 bytes in length?

    memcpy(&target, &source, sizeof(target));
    target[sizeof(target)-1] = '\0';

I imagine any extra checking causes processor stalls, or at least for
the branch prediction to fill up? Straight copies might allow for
maximum parallelism? If it's only 64 bytes, on processors such as
Pentium or Athlon, that's 2 or 4 cache lines, and writes are always
performed as cache lines.

I haven't seen the code that you and Tom are looking at to tell
whether it is safe to do this or not.

Cheers,
mark

-- 
mark(at)mielke(dot)cc / markm(at)ncf(dot)ca / markm(at)nortel(dot)com     __________________________
.  .  _  ._  . .   .__    .  . ._. .__ .   . . .__  | Neighbourhood Coder
|\/| |_| |_| |/    |_     |\/|  |  |_  |   |/  |_   | 
|  | | | | \ | \   |__ .  |  | .|. |__ |__ | \ |__  | Ottawa, Ontario, Canada

  One ring to rule them all, one ring to find them, one ring to bring them all
                       and in the darkness bind them...

                           http://mark.mielke.cc/


In response to

Responses

pgsql-hackers by date

Next:From: Adnan DURSUNDate: 2006-09-28 01:27:36
Subject: Can i see server SQL commands ?
Previous:From: Matteo BeccatiDate: 2006-09-27 22:23:24
Subject: Re: -HEAD planner issue wrt hash_joins on dbt3 ?

pgsql-patches by date

Next:From: Adnan DURSUNDate: 2006-09-28 01:27:36
Subject: Can i see server SQL commands ?
Previous:From: Thomas HallgrenDate: 2006-09-27 20:00:59
Subject: Re: [PATCHES] Patch for UUID datatype (beta)

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group