private GarbageCollectionArgs BuildGcArgs(GCDetails info)
        {
            int    number                  = info.Number;
            int    generation              = info.Generation;
            double startRelativeMSec       = (double)info.TimeStamp.Ticks; // TODO: translate in term of milli-seconds
            GarbageCollectionReason reason = (GarbageCollectionReason)info.Reason;
            GarbageCollectionType   type   = (GarbageCollectionType)info.Type;
            bool isCompacting              = false;
            long gen0Size                  = info.Heaps.Gen0Size;
            long gen1Size                  = info.Heaps.Gen1Size;
            long gen2Size                  = info.Heaps.Gen2Size;
            long lohSize = info.Heaps.LOHSize;

            // we don't do the difference and PauseDuration accumulate all supension/pause durations
            double pauseDuration      = info.PauseDuration;
            double suspensionDuration = 0;
            double finalPauseDuration = 0;

            // these are not available (yet) with EventPipes
            long[] objSizeBefore = new long[4] {
                0, 0, 0, 0
            };
            long[] objSizeAfter = new long[4] {
                0, 0, 0, 0
            };

            return(new GarbageCollectionArgs(
                       _pid, startRelativeMSec, number, generation, reason, type, isCompacting,
                       gen0Size, gen1Size, gen2Size, lohSize, objSizeBefore, objSizeAfter,
                       suspensionDuration, pauseDuration, finalPauseDuration));
        }
Example #2
0
 public GarbageCollectionStartEvent(
     DateTime timestamp,
     int number,
     int generation,
     GarbageCollectionType type,
     GarbageCollectionReason reason)
 {
     Timestamp  = timestamp;
     Number     = number;
     Generation = generation;
     Type       = type;
     Reason     = reason;
 }
 public GarbageCollectionInfo(
     DateTimeOffset startTimestamp,
     TimeSpan duration,
     int generation,
     int number,
     GarbageCollectionType type,
     GarbageCollectionReason reason)
 {
     StartTimestamp = startTimestamp;
     Duration       = duration;
     Generation     = generation;
     Number         = number;
     Type           = type;
     Reason         = reason;
 }
Example #4
0
 public GarbageCollectionArgs(int processId, double startRelativeMSec,
                              int number, int generation, GarbageCollectionReason reason, GarbageCollectionType type,
                              bool isCompacting, long gen0Size, long gen1Size, long gen2Size, long lohSize,
                              long[] objSizeBefore, long[] objSizeAfter,
                              double suspensionDuration, double pauseDuration, double finalPauseDuration)
 {
     ProcessId         = processId;
     StartRelativeMSec = startRelativeMSec;
     Number            = number;
     Generation        = generation;
     Reason            = reason;
     Type                  = type;
     IsCompacting          = isCompacting;
     Gen0Size              = gen0Size;
     Gen1Size              = gen1Size;
     Gen2Size              = gen2Size;
     LohSize               = lohSize;
     ObjSizeBefore         = objSizeBefore;
     ObjSizeAfter          = objSizeAfter;
     SuspensionDuration    = suspensionDuration;
     PauseDuration         = pauseDuration;
     BgcFinalPauseDuration = finalPauseDuration;
 }