Exemple #1
0
 internal static void DeserializeFields(BuildXLReader reader, out PipExecutionLevel level, out DateTime executionStart, out DateTime executionStop, out uint workerId)
 {
     level          = (PipExecutionLevel)reader.ReadByte();
     executionStart = reader.ReadDateTime();
     executionStop  = reader.ReadDateTime();
     workerId       = reader.ReadUInt32Compact();
 }
        /// <nodoc />
        public ProcessPipExecutionPerformance(
            PipExecutionLevel level,
            DateTime executionStart,
            DateTime executionStop,
            Fingerprint fingerprint,
            TimeSpan processExecutionTime,
            FileMonitoringViolationCounters fileMonitoringViolations,
            IOCounters ioCounters,
            TimeSpan userTime,
            TimeSpan kernelTime,
            ulong peakMemoryUsage,
            uint numberOfProcesses,
            uint workerId)
            : base(level, executionStart, executionStop, workerId)
        {
            Contract.Requires(executionStart.Kind == DateTimeKind.Utc);
            Contract.Requires(executionStop.Kind == DateTimeKind.Utc);
            Contract.Requires(processExecutionTime >= TimeSpan.Zero);
            Contract.Requires(userTime >= TimeSpan.Zero);
            Contract.Requires(kernelTime >= TimeSpan.Zero);

            ProcessExecutionTime     = processExecutionTime;
            Fingerprint              = fingerprint;
            FileMonitoringViolations = fileMonitoringViolations;
            IO                = ioCounters;
            UserTime          = userTime;
            KernelTime        = kernelTime;
            PeakMemoryUsage   = peakMemoryUsage;
            NumberOfProcesses = numberOfProcesses;
        }
Exemple #3
0
 /// <summary>Construct a PipExecutionEntry.
 /// </summary>
 public PipExecutionEntry(
     PipExecutionLevel executionLevel,
     DateTime executionStart,
     DateTime executionStop,
     WorkerId workerId)
 {
     ExecutionLevel = executionLevel;
     ExecutionStart = executionStart;
     ExecutionStop  = executionStop;
     WorkerId       = workerId;
 }
Exemple #4
0
        /// <nodoc />
        protected PipExecutionPerformance(PipExecutionLevel level, DateTime executionStart, DateTime executionStop, uint workerId)
        {
            Contract.Requires(executionStart.Kind == DateTimeKind.Utc);
            Contract.Requires(executionStop.Kind == DateTimeKind.Utc);

            // Since these don't use the high precision clock, very occasionally the start & stop as seen with DateTime
            // are out of order. This is a quick fix until 453683 is fully addressed
            if (executionStart > executionStop)
            {
                executionStop = executionStart;
            }

            ExecutionLevel = level;
            ExecutionStart = executionStart;
            ExecutionStop  = executionStop;
            WorkerId       = workerId;
        }
        /// <nodoc />
        public ProcessPipExecutionPerformance(
            PipExecutionLevel level,
            DateTime executionStart,
            DateTime executionStop,
            Fingerprint fingerprint,
            TimeSpan processExecutionTime,
            FileMonitoringViolationCounters fileMonitoringViolations,
            IOCounters ioCounters,
            TimeSpan userTime,
            TimeSpan kernelTime,
            ProcessMemoryCounters memoryCounters,
            uint numberOfProcesses,
            uint workerId,
            long suspendedDurationMs)
            : base(level, executionStart, executionStop, workerId)
        {
            Contract.Requires(executionStart.Kind == DateTimeKind.Utc);
            Contract.Requires(executionStop.Kind == DateTimeKind.Utc);
            Contract.Requires(processExecutionTime >= TimeSpan.Zero);
            Contract.Requires(userTime >= TimeSpan.Zero);
            Contract.Requires(kernelTime >= TimeSpan.Zero);

            ProcessExecutionTime     = processExecutionTime;
            Fingerprint              = fingerprint;
            FileMonitoringViolations = fileMonitoringViolations;
            IO                = ioCounters;
            UserTime          = userTime;
            KernelTime        = kernelTime;
            MemoryCounters    = memoryCounters;
            NumberOfProcesses = numberOfProcesses;

            var    durationInMs        = (uint)Math.Min(uint.MaxValue, Math.Max(1, ProcessExecutionTime.TotalMilliseconds));
            double cpuTime             = KernelTime.TotalMilliseconds + UserTime.TotalMilliseconds;
            double processorPercentage = durationInMs == 0 ? 0 : cpuTime / durationInMs;

            ProcessorsInPercents = (ushort)Math.Min(ushort.MaxValue, processorPercentage * 100.0);
            SuspendedDurationMs  = suspendedDurationMs;
        }
Exemple #6
0
        internal static ProcessPipExecutionPerformance Deserialize(BuildXLReader reader, PipExecutionLevel level, DateTime executionStart, DateTime executionStop, uint workerId)
        {
            var fingerprint = FingerprintUtilities.CreateFrom(reader);

            TimeSpan processExecutionTime = reader.ReadTimeSpan();
            FileMonitoringViolationCounters fileMonitoringViolations = ReadFileMonitoringViolationCounters(reader);
            IOCounters            ioCounters     = IOCounters.Deserialize(reader);
            TimeSpan              userTime       = reader.ReadTimeSpan();
            TimeSpan              kernelTime     = reader.ReadTimeSpan();
            ProcessMemoryCounters memoryCounters = ProcessMemoryCounters.Deserialize(reader);

            uint numberOfProcesses = reader.ReadUInt32Compact();

            return(new ProcessPipExecutionPerformance(
                       fingerprint: fingerprint,
                       level: level,
                       executionStart: executionStart,
                       executionStop: executionStop,
                       processExecutionTime: processExecutionTime,
                       fileMonitoringViolations: fileMonitoringViolations,
                       ioCounters: ioCounters,
                       userTime: userTime,
                       kernelTime: kernelTime,
                       memoryCounters: memoryCounters,
                       numberOfProcesses: numberOfProcesses,
                       workerId: workerId));
        }