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

Reply via email to