averageRate property

DataRate? get averageRate

Calculates the average rate between consecutive samples.

Requires trackTimestamps to be enabled.

Implementation

DataRate? get averageRate {
  if (_timestamps.length < 2) return null;

  double totalBytesPerSecond = 0;
  int intervals = 0;

  for (var i = 1; i < _samples.length; i++) {
    final duration = _timestamps[i].difference(_timestamps[i - 1]);
    if (duration.inMicroseconds > 0) {
      final bytesPerSecond =
          _samples[i].bytes / (duration.inMicroseconds / 1000000);
      totalBytesPerSecond += bytesPerSecond;
      intervals++;
    }
  }

  if (intervals == 0) return null;
  return DataRate.bytesPerSecond(totalBytesPerSecond / intervals);
}