On Thursday 14 September 2006 17:41 Andreas Schwab wrote:
> Philipp Marek <[EMAIL PROTECTED]> writes:
> > On Thursday 14 September 2006 15:01 Andreas Schwab wrote:
> >> Note that "L" is not a valid length modifier for integer formats.
> >
> > For gnu libc it is:
> > http://www.gnu.org/software/libc/manual/html_node/Integer-Conversions.htm
> >l#Integer-Conversions
> It's better not to depend on non-standard extensions when it is easy to
> avoid.
There you're right.

> >> Assuming you meant %llu instead of %Lu you can always add a cast to
> >> unsigned long long to match the format.
> >
> > Yes. But that's a bit unclean, and doing that unnecessarily in a loop for
> > ~300000 iterations is something I'd like to avoid.
>
> String formatting isn't exactly fast anyway, so the conversion would most
> likely be lost in the noise.

Trying the attached program seems to show that it makes up to 30% difference 
(in a microbenchmark - not in the real-world-scenario :-)

        $ cc -O6 -o pf pf.c
        $ ./pf
        stg=1799999

        diff = 1:018974
        diff = 1:340017
(Thats on an Duron 1200)

Thank you!


Regards,

Phil

-- 
Versioning your /etc, /home or even your whole installation?
             Try fsvs (fsvs.tigris.org)!
t: pf
	./pf

pf: pf.c
	$(CC) -O6 -o $@ $<

#include <sys/time.h>
#include <time.h>



#define RUNS 1800000

void P(struct timeval *a, struct timeval *b)
{
  int sec=b->tv_sec - a->tv_sec;
  int usec=b->tv_usec - a->tv_usec;

	if (usec<0) { usec+=1000000; sec--; }

	printf("diff = %d:%06d\n", sec, usec);
}

main()
{
  char stg[30];
	int i;
	struct timeval tv1, tv2, tv3;
	struct timezone tz;

	gettimeofday(&tv1, &tz);
	for(i=0; i<RUNS; i++)
	{
	  sprintf(stg, "%ld \n", (long)i);
	}
	gettimeofday(&tv2, &tz);
	for(i=0; i<RUNS; i++)
	{
	  sprintf(stg, "%Ld \n", (long long)i);
	}
	gettimeofday(&tv3, &tz);

	printf("stg=%s\n", stg);
	P(&tv1, &tv2);
	P(&tv2, &tv3);

}
_______________________________________________
Autoconf mailing list
Autoconf@gnu.org
http://lists.gnu.org/mailman/listinfo/autoconf

Reply via email to