code: public function getProfiling($categories = [], $excludeCategories = [])
      {
          $timings = $this->calculateTimings($this->messages);
          if (empty($categories) && empty($excludeCategories)) {
              return $timings;
          }
  
          foreach ($timings as $i => $timing) {
              $matched = empty($categories);
              foreach ($categories as $category) {
                  $prefix = rtrim($category, '*');
                  if (($timing['category'] === $category || $prefix !== $category) && strpos($timing['category'], $prefix) === 0) {
                      $matched = true;
                      break;
                  }
              }
  
              if ($matched) {
                  foreach ($excludeCategories as $category) {
                      $prefix = rtrim($category, '*');
                      foreach ($timings as $i => $timing) {
                          if (($timing['category'] === $category || $prefix !== $category) && strpos($timing['category'], $prefix) === 0) {
                              $matched = false;
                              break;
                          }
                      }
                  }
              }
  
              if (!$matched) {
                  unset($timings[$i]);
              }
          }
  
          return array_values($timings);
      }
docs: Returns the profiling results.
  
  By default, all profiling results will be returned. You may provide
  `$categories` and `$excludeCategories` as parameters to retrieve the
  results that you are interested in.
  
  @param array $categories list of categories that you are interested in.
  You can use an asterisk at the end of a category to do a prefix match.
  For example, 'yii\db\*' will match categories starting with 'yii\db\',
  such as 'yii\db\Connection'.
  @param array $excludeCategories list of categories that you want to exclude
  @return array the profiling results. Each element is an array consisting of these elements:
  `info`, `category`, `timestamp`, `trace`, `level`, `duration`, `memory`, `memoryDiff`.
  The `memory` and `memoryDiff` values are available since version 2.0.11.