Have you considered the following "non-specific" quick fixes?
1. Build on a ramfs/ramdisk
2. Distribute compilations and tests across a cluster of machines (like distcc)
3. If non-parallelizable code is still the bottleneck, use the
fastest CPU possible (i.e. an overclocked Core i7
4770K, overclocked Core i7 4960X/3960X/4930K/3930K, dual Xeon E5 2687W or quad
Xeon E5 4650
depending on whether you need 4, 6, 16 or 32 cores)
4. Read metadata only once, in one of these ways:
4a. Pass all files to a single compiler invocation (per machine or core)
4b. Have a long-lived rustc "daemon" (per machine or core) that keeps crate
metadata in memory and gets passed files to compile by fd
4c. Use CRIU suspend/restore (or the unexec from Emacs or whatever) to suspend
a rustc process after metadata is read and restore that image for each file
instead of spawning a new one
4d. Allocate metadata using a special allocator that allocates it from a block
at a fixed memory address, then just dump the block into a file, and read
metadata with a single mmap system call at that same fixed address (this is a
security hole in general, so it needs to be optional and off by default)
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev