This is the mail archive of the cygwin-developers mailing list for the Cygwin project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
<snip>Emacs "make bootstrap" runs Emacs as a compiler, generating .elc files from .el files. The build system runs Emacs once for each .el file we compile, of which there are thousands. Now, Emacs takes about a two seconds to start on my system, so compiling thousands of files takes a while; the actual .el to .elc compilation is nearly instantaneous.
According to xperf, Emacs spends most of its startup time re-reading emacs.exe code pages from disk.
GCC bootstrap has *exactly* the same problem! Loading the binary from ./xgcc for each line of all those configure scripts takes longer than everything else put together; I could never figure out what was wrong, since the stage1 and stage2 binaries are "only" about 90MB, and stripping (down to 25MB) didn't help at all.We shouldn't need to read this file more than once. After the first run, the system should be able to read emacs.exe from the standby list, not the disk.
Now, if we run emacs.exe from cmd, not bash, that's exactly what happens:<snip>
I tried to test on my machine (w7 x64), but I can't get it to compile (GetFileSizeEx not found at link time):I came up with a simple test case that reproduces in cmd the behavior I see when I run Emacs from bash. I've reproduced the program below. Here, I've compiled a.exe with -DSLOW:
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |