lots of uname syscalls on boot - patch
David N. Welton
davidw@REDACTED
Mon May 3 11:44:18 CEST 2004
[ Please CC replies to me. ]
Hi,
I'm pretty new to Erlang, so maybe there is a good reason for this
behavior, but I noticed that when starting up, erlang calls uname (2)
a lot:
davidw@REDACTED:~$ strace -o output erl ./hw.erl -noinput -s hw main
hello world
davidw@REDACTED:~$ grep -c uname output
982
I had a go at reducing that in ./erts/emulator/sys/unix/sys.c:
void
os_flavor(char* namebuf, /* Where to return the name. */
unsigned size) /* Size of name buffer. */
{
static int called = 0;
static struct utsname uts; /* Information about the system. */
if (called != 1) {
(void) uname(&uts);
called = 1;
}
strcpy(namebuf, uts.sysname);
for ( ; *namebuf; namebuf++)
if (isupper((int) *namebuf))
*namebuf = tolower((int) *namebuf);
}
This change drammatically reduces the amount of uname syscalls:
davidw@REDACTED:~$ strace -o output /home/davidw/download/erlang-9.2/bin/erl ./hw.erl -noinput -s hw main
hello world
davidw@REDACTED:~$ grep -c uname output
6
It's not that big a deal I guess, but I suppose it speeds things up
just a bit.
Thankyou,
--
David N. Welton
Consulting: http://www.dedasys.com/
Personal: http://www.dedasys.com/davidw/
Free Software: http://www.dedasys.com/freesoftware/
Apache Tcl: http://tcl.apache.org/
More information about the erlang-patches
mailing list