compare and describe the costs of calling functions and provide guidelines when to use what:

  1. inline call
  2. non-inline/virtual function
  3. call across shared library boundary
  4. execute via an executor in same thread
  5. execute via an executor in another thread
  6. execute on same machine in another process
  7. execute on another machine