[metrics] Add GC-work throughput metrics

Track work done (bytes processed) per second by the GC.

Some other minor changes:
1) Adjusted ConcurrentCopying class member's order to make access to
them more cache-access friendly. Counters accessed by GC-thread should
not be in the same cacheline as the one containing counters meant for
mutators, if either of the two modify those counters.
2) Increased max to 10'000 for throughput histograms in case
the throughput is > GB/s

Bug: 191404436
Test: manual
Change-Id: Iefaf1106690b6bae670a3a917f61194b3fcacfe0
diff --git a/libartbase/base/metrics/metrics.h b/libartbase/base/metrics/metrics.h
index 72d8365..78a6387 100644
--- a/libartbase/base/metrics/metrics.h
+++ b/libartbase/base/metrics/metrics.h
@@ -49,8 +49,10 @@
   METRIC(JitMethodCompileCount, MetricsCounter)                    \
   METRIC(YoungGcCollectionTime, MetricsHistogram, 15, 0, 60'000)   \
   METRIC(FullGcCollectionTime, MetricsHistogram, 15, 0, 60'000)    \
-  METRIC(YoungGcThroughput, MetricsHistogram, 15, 0, 1'000)        \
-  METRIC(FullGcThroughput, MetricsHistogram, 15, 0, 1'000)
+  METRIC(YoungGcThroughput, MetricsHistogram, 15, 0, 10'000)       \
+  METRIC(FullGcThroughput, MetricsHistogram, 15, 0, 10'000)        \
+  METRIC(YoungGcTracingThroughput, MetricsHistogram, 15, 0, 10'000)   \
+  METRIC(FullGcTracingThroughput, MetricsHistogram, 15, 0, 10'000)
 
 // A lot of the metrics implementation code is generated by passing one-off macros into ART_COUNTERS
 // and ART_HISTOGRAMS. This means metrics.h and metrics.cc are very #define-heavy, which can be