using System.Collections.Generic;
namespace Semmle.Extraction.CSharp.Entities
{
///
/// The various performance metrics to log.
///
public struct PerformanceMetrics
{
public Timings Frontend { get; set; }
public Timings Extractor { get; set; }
public Timings Total { get; set; }
public long PeakWorkingSet { get; set; }
///
/// These are in database order (0 indexed)
///
public IEnumerable Metrics
{
get
{
yield return (float)Frontend.Cpu.TotalSeconds;
yield return (float)Frontend.Elapsed.TotalSeconds;
yield return (float)Extractor.Cpu.TotalSeconds;
yield return (float)Extractor.Elapsed.TotalSeconds;
yield return (float)Frontend.User.TotalSeconds;
yield return (float)Extractor.User.TotalSeconds;
yield return PeakWorkingSet / 1024.0f / 1024.0f;
}
}
}
}