Re: inline newNode()

From: Peter Eisentraut <peter_e(at)gmx(dot)net>
To: Neil Conway <neilc(at)samurai(dot)com>
Cc: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, PostgreSQL Patches <pgsql-patches(at)postgresql(dot)org>
Subject: Re: inline newNode()
Date: 2002-10-10 17:38:05
Message-ID: Pine.LNX.4.44.0210101935180.928-100000@localhost.localdomain
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-patches

Neil Conway writes:

> MemSet(): ~9.6
> memset(): ~19.5
> __builtin_memset(): ~10.00

I did my own tests with this code and the results vary wildly between
platforms. (I do not list __builtin_memset() because the results were
invariably equal to memset().)

Platform buffer memset() MemSet()

freebsd 32 5.3 4.9
freebsd 256 23.3 24.2
mingw 32 0.5 2.0
mingw 256 6.6 10.5
unixware 256 15.2 10.3
unixware 1024 29.2 34.1
cygwin 256 6.7 15.8

"freebsd" is i386-unknown-freebsd4.7 with GCC 2.95.4.
"mingw" is i686-pc-mingw32 with GCC 3.2.
"unixware" is i586-sco-sysv5uw7.1.3 with vendor compiler version 4.1.
"cygwin" is i686-pc-cygwin with GCC 2.95.3.

GCC was run as 'gcc -O2 -Wall'. (I also tried 'gcc -O3 -finline' but
that gave only minimally better results.) The SCO compiler was run as
'cc -O -Kinine -v'.

Make of those results what you will, but the current cross-over point of
1024 seems very wrong.

--
Peter Eisentraut peter_e(at)gmx(dot)net

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2002-10-10 18:41:27 Re: Open items
Previous Message Neil Conway 2002-10-10 17:34:14 Re: Open items

Browse pgsql-patches by date

  From Date Subject
Next Message Neil Conway 2002-10-11 01:15:03 fix typos in README.dbmirror
Previous Message Neil Conway 2002-10-10 17:28:47 Re: inline newNode()