Timing
Added a TIMING
compile-time flag that, when enabled, runs 6 performance tests with each combo of message size and sender/receiver first, and prints the results to the screen. Also adds flags for disabling compiler optimization, i cache, and d cache (all of which are now enabled by default).
For the overhead, the additional operations for testing are at most 100 instructions, 1.5GHz means 1.5 instructions per nanosecond -> 67 nanoseconds for additional operations on each test, so is negligible on a microsecond scale
Edited by Ethan Zhang