[rpc] micro-optimizations on RpczStore::LogTrace

This patch micro-optimizes the code in RpczStore::LogTrace():
  * faster computation of the logging threshold
  * std::string instance is no longer allocated when outputting
    the trace of an RPC call
  * the LogTrace() method is now static
As an extra style-related change, 'final' specifier has been added to
the RpczStore class' declaration since it was not meant for adding
derived classes on top (its destructor wasn't virtual).  Also, switched
samples' timestamp from Atomics to std::atomics and did other unsorted
changes to avoid memory allocation while holding a spinlock and shorten
duration of critical sections overall.

This patch also contains a few nano-optimizations for AsyncLogger class:
  * 'final' specifier was added to allow for more run-time optimizations
  * unsorted minor changes

Change-Id: I4b9cd537ad9797773f6934ae72d0e865db9770a1
Reviewed-on: http://gerrit.cloudera.org:8080/20748
Tested-by: Alexey Serbin <alexey@apache.org>
Reviewed-by: Abhishek Chennaka <achennaka@cloudera.com>
5 files changed