I've been compiling and flashing a lot while waiting on filesystem code to hit the repo, so I optimized my commands to save a ton of time. Dropped my build/flash time from 58s to 22s.
[code]make clean && make -j2 && make PORT=/dev/ttyUSB0 BAUD=921600 deploy[/code]
Adding the -j2 flag to the make command runs a thread on both of my VM's cores. If you have 4 cores available, raising the number might be a good idea. BAUD=921600 is the fastest the CP2102 on my NodeMCU board will allow.
Unoptimized
[code]
trey@john ~/dev/micropython/esp8266 $ time sh -c "make clean && make && make PORT=/dev/ttyUSB0 deploy"
...
Wrote 348160 bytes at 0x00010000 in 38.8 seconds (71.7 kbit/s)...
Leaving...
real 0m58.749s
user 0m6.020s
sys 0m0.940s
[/code]
Optimized
[code]
trey@john ~/dev/micropython/esp8266 $ time sh -c "make clean && make -j2 && make PORT=/dev/ttyUSB0 BAUD=921600 deploy"
...
Wrote 348160 bytes at 0x00010000 in 11.0 seconds (252.1 kbit/s)...
Leaving...
real 0m22.390s
user 0m6.160s
sys 0m1.224s
[/code]