printReport method

void printReport()

Implementation

void printReport() {
  print('\n┌─────────────────────────────────────────────┐');
  print('│  PERFORMANCE — $screenName');
  print('├─────────────────────────────────────────────┤');
  print('│  Grade         : $gradeEmoji $grade');
  print('│  Total frames  : $totalFrames');
  print('│  Janky frames  : $jankyFrames (${jankRate.toStringAsFixed(1)}%)');
  print('│  Avg build     : ${avgBuildMs.toStringAsFixed(2)}ms  '
      '(budget: 16ms)');
  print('│  Avg raster    : ${avgRasterMs.toStringAsFixed(2)}ms');
  print('│  Worst frame   : ${worstFrameMs.toStringAsFixed(2)}ms');
  print('│  Memory        : ${(memoryKb / 1024).toStringAsFixed(1)}MB');
  print('└─────────────────────────────────────────────┘');

  if (jankyFrames > 0) {
    print(
        '\n  ⚠️  Jank detected — user will feel stuttering on this screen.');
  }
  if (avgBuildMs > 16) {
    print(
        '  ⚠️  Avg build time exceeds 16ms — check for heavy build() work.');
  }
  if (avgRasterMs > 8) {
    print(
        '  ⚠️  High raster time — check for expensive painting operations,');
    print('      clipPath, saveLayer, or large image decoding.');
  }
  if (memoryKb > 200 * 1024) {
    print('  ⚠️  Memory over 200MB — check for image cache or leak.');
  }
}