compare and describe the costs of calling functions and provide guidelines when to use what:
- inline call
- non-inline/virtual function
- call across shared library boundary
- execute via an executor in same thread
- execute via an executor in another thread
- execute on same machine in another process
- execute on another machine