It's more like 800 of these directory reads... and it appears that it reads every .el file in each package-directory as evidenced by this example strace:
open("/usr/share/xemacs/mule-packages/lisp/egg-its/",
O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 6
getdents(6, /* 54 entries */, 32768) = 1984
getdents(6, /* 0 entries */, 32768) = 0
close(6) = 0
It's not clear why it takes so long for xemacs to start -- it's native mount ext3 file-system. There's a regular emacs that reads the same init and el files and it starts as quickly as expected.
I get the same behavior from my own source compiled binary and with the bundled binary xemacs from the RPM -- xemacs-21.5.31-5.el6.x86_64.
Could there be something I'm missing from my .xemacs inits?
I'll continue to dig into this to see if I can pinpoint why it takes so long for it to start.... Well here's another oddity that I found using strace, but this looks like an X-11 thing:
poll([{fd=6, events=POLLIN}, {fd=3, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 2, 268) = 0 (Timeout)
read(6, 0x2a31634, 4096) = -1 EAGAIN (Resource temporarily unavailable)
read(6, 0x2a31634, 4096) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=6, events=POLLIN}, {fd=3, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 2, 0) = 0 (Timeout)
read(6, 0x2a31634, 4096) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)
read(6, 0x2a31634, 4096) = -1 EAGAIN (Resource temporarily unavailable)
read(6, 0x2a31634, 4096) = -1 EAGAIN (Resource temporarily unavailable)