configureProcessingCache static method

void configureProcessingCache({
  1. bool? enabled,
  2. int? maxEntries,
  3. int? maxBytes,
  4. int? minPointCount,
  5. bool? extractionCacheEnabled,
  6. int? maxExtractionEntries,
  7. int? maxExtractionBytes,
  8. int? minExtractionPointCount,
})

Tune processing cache behavior at runtime.

Implementation

static void configureProcessingCache({
  bool? enabled,
  int? maxEntries,
  int? maxBytes,
  int? minPointCount,
  bool? extractionCacheEnabled,
  int? maxExtractionEntries,
  int? maxExtractionBytes,
  int? minExtractionPointCount,
}) {
  if (enabled != null) {
    ChartDataProcessingCacheConfig.enabled = enabled;
  }
  if (maxEntries != null) {
    ChartDataProcessingCacheConfig.maxEntries = math.max(0, maxEntries);
    _processingCache.pruneTo(
      maxEntries: ChartDataProcessingCacheConfig.maxEntries,
      maxBytes: ChartDataProcessingCacheConfig.maxBytes,
    );
  }
  if (maxBytes != null) {
    ChartDataProcessingCacheConfig.maxBytes = math.max(0, maxBytes);
    _processingCache.pruneTo(
      maxEntries: ChartDataProcessingCacheConfig.maxEntries,
      maxBytes: ChartDataProcessingCacheConfig.maxBytes,
    );
  }
  if (minPointCount != null) {
    ChartDataProcessingCacheConfig.minPointCount = math.max(0, minPointCount);
  }
  if (extractionCacheEnabled != null) {
    ChartDataProcessingCacheConfig.extractionCacheEnabled =
        extractionCacheEnabled;
    if (!extractionCacheEnabled) {
      _extractedSeriesCache.clear(resetMetrics: false);
    }
  }
  if (maxExtractionEntries != null) {
    ChartDataProcessingCacheConfig.maxExtractionEntries = math.max(
      0,
      maxExtractionEntries,
    );
    _extractedSeriesCache.pruneTo(
      maxEntries: ChartDataProcessingCacheConfig.maxExtractionEntries,
      maxBytes: ChartDataProcessingCacheConfig.maxExtractionBytes,
    );
  }
  if (maxExtractionBytes != null) {
    ChartDataProcessingCacheConfig.maxExtractionBytes = math.max(
      0,
      maxExtractionBytes,
    );
    _extractedSeriesCache.pruneTo(
      maxEntries: ChartDataProcessingCacheConfig.maxExtractionEntries,
      maxBytes: ChartDataProcessingCacheConfig.maxExtractionBytes,
    );
  }
  if (minExtractionPointCount != null) {
    ChartDataProcessingCacheConfig.minExtractionPointCount = math.max(
      0,
      minExtractionPointCount,
    );
    _extractedSeriesCache.pruneMinSourceLength(
      ChartDataProcessingCacheConfig.minExtractionPointCount,
    );
  }
}