get_stats_data_by_id(id, noise_threshold, below_threshold, above_threshold, fixed, unconverted) {
    const stats_data = {};
    const stats = PERF.get_stats_by_id(id);
    if (stats != null) {
      stats_data.entries = stats.get_num_records();
      stats_data.average = stats.average(fixed, unconverted);
      stats_data.deviation = stats.deviation(fixed, unconverted);

      const stats_noise_threshold = noise_threshold != null ? noise_threshold : stats.get_noise_threshold();
      if (stats_noise_threshold != null) {
        stats_data[`noise(${stats_noise_threshold})`] = stats.noise(stats_noise_threshold, fixed, unconverted);
      }

      const stats_below_threshold = below_threshold != null ? below_threshold : stats.get_below_threshold();
      if (stats_below_threshold != null) {
        stats_data[`below(${stats_below_threshold})`] = stats.below(stats_below_threshold, fixed, unconverted);
      }
      const stats_above_threshold = above_threshold != null ? above_threshold : stats.get_above_threshold();
      if (stats_above_threshold != null) {
        stats_data[`above(${stats_above_threshold})`] = stats.above(stats_above_threshold, fixed, unconverted);
      }
    }
    return stats_data;
  }
Returns stats recorded for id as a plain data object.
@param {Number} [noise_threshold=0] difference between average and entry to consider it noisy
@param {Number} [below_threshold=0] threshold which entries are considered below
@param {Number} [above_threshold=0] threshold which entries are considered above
@param {Number} [fixed=2] number of digits to appear after the decimal point
@param {Boolean} [unconverted=false] whether to get the raw recorded values
@returns {Object}