code: AllocationStats minus(AllocationStats baseline) {
      for (Entry<Allocation> entry : baseline.allocations.entrySet()) {
        int superCount = allocations.count(entry.getElement());
        if (superCount < entry.getCount()) {
          throw new IllegalStateException(
              String.format("Your benchmark appears to have non-deterministic allocation behavior. "
                  + "Observed %d instance(s) of %s in the baseline but only %d in the actual "
                  + "measurement", 
                  entry.getCount(),
                  entry.getElement(), 
                  superCount));
        }
      }
      try {
        return new AllocationStats(allocationCount - baseline.allocationCount,
              allocationSize - baseline.allocationSize,
              reps - baseline.reps,
              Multisets.difference(allocations, baseline.allocations));
      } catch (IllegalArgumentException e) {
        throw new IllegalStateException(String.format(
            "Your benchmark appears to have non-deterministic allocation behavior. The difference "
            + "between the baseline %s and the measurement %s is invalid. Consider enabling "
            + "instrument.allocation.options.trackAllocations to get a more specific error message.", 
            baseline, this), e);
      }
    }
docs: Computes and returns the difference between this measurement and the given
  {@code baseline} measurement. The {@code baseline} measurement must have a lower weight
  (fewer reps) than this measurement.