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


Groups > comp.lang.c > #16937

Re: a = b or memset/cpy?

From Ian Collins <ian-news@hotmail.com>
Newsgroups comp.lang.c
Subject Re: a = b or memset/cpy?
Date 2012-02-09 09:18 +1300
Message-ID <9pg3liFom1U3@mid.individual.net> (permalink)
References <abb85a15-f68c-4e2f-8985-fe8b4945aca0@t8g2000yqg.googlegroups.com> <jgukhf$199$1@reader1.panix.com>

Show all headers | View raw


On 02/ 9/12 09:05 AM, Joe keane wrote:
> In article<abb85a15-f68c-4e2f-8985-fe8b4945aca0@t8g2000yqg.googlegroups.com>,
> nroberts<roberts.noah@gmail.com>  wrote:
>> memset and memcpy are turning up in profiles a lot.
>
> Indeed.
>
>> Sometimes it is clear that using = to initialize a local would be
>> better than memset.
>
> It's a shame if you call a function with a size parameter, when in fact
> the size is a compile-time constant.  You also probably know a bit about
> alignment, whereas those guys have to assume the worst.

A decent compiler will inline the call to memset() in this case, so 
there is no call overhead.  Whether the inline memset() is faster or 
slower than an assignment to a const initialiser is something the OP 
would have to measure.

>> I might not gain anything, but at least there's a chance.
>
> Please to use real data!  'gprof' is very good at this.  It works [so
> far as i have seen] on stdlib calls as well as your functions.

Assuming the OP uses GNU tools...

> It can tell you where you're getting killed by function call overhead,
> and where the copy is taking a long time, such that you may go to more
> length to avoid it.  It can also (by switching back to a function) tell
> you where your 'optimization' does nothing except increase code size.

Assuming there is a function call...

-- 
Ian Collins

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


Thread

a = b or memset/cpy? nroberts <roberts.noah@gmail.com> - 2012-02-07 09:02 -0800
  Re: a = b or memset/cpy? Jens Gustedt <jens.gustedt@loria.fr> - 2012-02-07 18:41 +0100
    Re: a = b or memset/cpy? James Kuyper <jameskuyper@verizon.net> - 2012-02-07 13:40 -0500
      Re: a = b or memset/cpy? Jens Gustedt <jens.gustedt@loria.fr> - 2012-02-07 20:09 +0100
      Re: a = b or memset/cpy? Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-02-07 11:37 -0800
        Re: a = b or memset/cpy? Shao Miller <sha0.miller@gmail.com> - 2012-02-07 18:35 -0500
    Re: a = b or memset/cpy? nroberts <roberts.noah@gmail.com> - 2012-02-07 11:07 -0800
      Re: a = b or memset/cpy? blp@cs.stanford.edu (Ben Pfaff) - 2012-02-07 11:14 -0800
        Re: a = b or memset/cpy? nroberts <roberts.noah@gmail.com> - 2012-02-07 11:41 -0800
      Re: a = b or memset/cpy? Shao Miller <sha0.miller@gmail.com> - 2012-02-07 18:39 -0500
  Re: a = b or memset/cpy? "Scott Fluhrer" <sfluhrer@ix.netcom.com> - 2012-02-07 14:14 -0500
  Re: a = b or memset/cpy? Shao Miller <sha0.miller@gmail.com> - 2012-02-07 18:58 -0500
    Re: a = b or memset/cpy? Shao Miller <sha0.miller@gmail.com> - 2012-02-07 21:58 -0500
    Re: a = b or memset/cpy? Jens Gustedt <jens.gustedt@loria.fr> - 2012-02-09 21:34 +0100
  Re: a = b or memset/cpy? Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-02-07 20:34 -0500
  Re: a = b or memset/cpy? Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-02-08 18:43 +0000
  Re: a = b or memset/cpy? jgk@panix.com (Joe keane) - 2012-02-08 20:05 +0000
    Re: a = b or memset/cpy? Ian Collins <ian-news@hotmail.com> - 2012-02-09 09:18 +1300
  Re: a = b or memset/cpy? Tim Prince <tim@nospamcomputer.org> - 2012-02-14 08:30 -0500

csiph-web