コード例 #1
0
        private void ReadLogFileChunk_Gc(BinaryReader reader)
        {
            Gc gc;

            gc = new Gc(this);

            gc.Generation       = reader.ReadInt32();
            gc.TimeT            = reader.ReadInt64();
            gc.Timestamp        = Util.ConvertTimeT(gc.TimeT);
            gc.PreGcLiveBytes   = reader.ReadInt64();
            gc.PreGcLiveObjects = reader.ReadInt32();

            int n;

            n = reader.ReadInt32();

            RawGcData [] raw;
            raw = new RawGcData [n];
            for (int i = 0; i < n; ++i)
            {
                raw [i].BacktraceCode = reader.ReadUInt32();
                raw [i].ObjectStats.Read(reader);
            }
            combsort_raw_gc_data(raw);

            gc.PostGcLiveBytes   = reader.ReadInt64();
            gc.PostGcLiveObjects = reader.ReadInt32();

            gcs [i_gc]         = gc;
            raw_gc_data [i_gc] = raw;
            ++i_gc;

            if (gc.Generation >= 0)
            {
                Spew("GC {0}: collected {1} bytes, {2} to {3}",
                     gc.Generation,
                     gc.FreedBytes,
                     gc.PreGcLiveBytes,
                     gc.PostGcLiveBytes);
            }
        }
コード例 #2
0
ファイル: OutfileReader.cs プロジェクト: Kalnor/monodevelop
		static void combsort_raw_gc_data (RawGcData [] data)
                {
			int start = 0;
			int size = data.Length;
                        int gap = size;
                        while (true) {
				gap = new_gap (gap);

                                bool swapped = false;
                                int end = start + size - gap;
                                for (int i = start; i < end; i++) {
                                        int j = i + gap;
                                        if (data [i].BacktraceCode > data [j].BacktraceCode) {
						RawGcData tmp;
						tmp = data [i];
						data [i] = data [j];
						data [j] = tmp;

                                                swapped = true;
                                        }
                                }
                                if (gap == 1 && !swapped)
                                        break;
                        }
		}
コード例 #3
0
ファイル: OutfileReader.cs プロジェクト: Kalnor/monodevelop
		private void ReadLogFileChunk_Gc (BinaryReader reader)
		{
			Gc gc;
			gc = new Gc (this);

			gc.Generation = reader.ReadInt32 ();
			gc.TimeT = reader.ReadInt64 ();
			gc.Timestamp = Util.ConvertTimeT (gc.TimeT);
			gc.PreGcLiveBytes = reader.ReadInt64 ();
			gc.PreGcLiveObjects = reader.ReadInt32 ();

			int n;
			n = reader.ReadInt32 ();

			RawGcData [] raw;
			raw = new RawGcData [n];
			for (int i = 0; i < n; ++i) {
				raw [i].BacktraceCode = reader.ReadUInt32 ();
				raw [i].ObjectStats.Read (reader);
			}
			combsort_raw_gc_data (raw);

			gc.PostGcLiveBytes = reader.ReadInt64 ();
			gc.PostGcLiveObjects = reader.ReadInt32 ();

			gcs [i_gc] = gc;
			raw_gc_data [i_gc] = raw;
			++i_gc;

			if (gc.Generation >= 0)
				Spew ("GC {0}: collected {1} bytes, {2} to {3}",
				      gc.Generation,
				      gc.FreedBytes,
				      gc.PreGcLiveBytes,
				      gc.PostGcLiveBytes);
		}