code: private void startPerformanceSnapshot() {
          // Create new snapshot
          mPerfSnapshot = new Bundle();
  
          // Add initial binder counts
          Bundle binderCounts = getBinderCounts();
          for (String key : binderCounts.keySet()) {
              mPerfSnapshot.putLong("pre_" + key, binderCounts.getLong(key));
          }
  
          // Force a GC and zero out the performance counters. Do this
          // before reading initial CPU/wall-clock times so we don't include
          // the cost of this setup in our final metrics.
          startAllocCounting();
  
          // Record CPU time up to this point, and start timing. Note: this
          // must happen at the end of this method, otherwise the timing will
          // include noise.
          mSnapshotExecTime = SystemClock.uptimeMillis();
          mSnapshotCpuTime = Process.getElapsedCpuTime();
      }
docs: /*
  Starts tracking memory usage, binder transactions, and real & cpu timing.