Acara ETW Pengumpulan Sampah
Peristiwa ini mengumpulkan informasi yang berkaitan dengan pengumpulan sampah. Mereka membantu dalam diagnostik dan penelusuran kesalahan, termasuk menentukan berapa kali pengumpulan sampah dilakukan, berapa banyak memori yang dibebaskan selama pengumpulan sampah, dan sebagainya.
Kategori ini terdiri dari peristiwa berikut:
- GCStart_V1 Event
- GCEnd_V1 Event
- GCHeapStats_V1 Event
- GCHeapStats_V2 Event
- GCCreateSegment_V1 Event
- GCFreeSegment_V1 Event
- GCRestartEEBegin_V1 Event
- GCRestartEEEnd_V1 Event
- GCSuspendEE_V1 Event
- GCSuspendEEEnd_V1 Event
- GCAllocationTick_V2 Event
- GCAllocationTick_V3 Event
- GCFinalizersBegin_V1 Event
- GCFinalizersEnd_V1 Event
- GCCreateConcurrentThread_V1 Event
- GCTerminateConcurrentThread_V1 Event
GCStart_V1 Event
Tabel berikut menunjukkan kata kunci dan level. Untuk informasi selengkapnya, lihat Kata Kunci dan Tingkat ETW CLR.
Kata kunci untuk meningkatkan peristiwa | Tingkat |
---|---|
GCKeyword (0x1) |
Informasional (4) |
Tabel berikut memperlihatkan informasi peristiwa:
Kejadian | ID Peristiwa | Dimunculkan ketika |
---|---|---|
GCStart_V1 |
1 | Pengumpulan sampah telah dimulai. |
Tabel berikut memperlihatkan data peristiwa:
Nama bidang | Jenis data | Deskripsi |
---|---|---|
Hitung | win:UInt32 | Pengumpulan sampah nth. |
Kedalaman | win:UInt32 | Generasi yang sedang dikumpulkan. |
Alasan | win:UInt32 | Mengapa pengumpulan sampah dipicu: 0x0 - Alokasi tumpukan objek kecil. 0x1 - Diinduksi. 0x2 - Memori rendah. 0x3 - Kosong. 0x4 - Alokasi tumpukan objek besar. 0x5 - Kehabisan ruang (untuk tumpukan objek kecil). 0x6 - Kehabisan ruang (untuk tumpukan objek besar). 0x7 - Diinduksi tetapi tidak dipaksa sebagai pemblokiran. 0x8 - Pengujian tekanan. 0x9 - Utas finalizer mengamati prosesnya dalam memori rendah dan menginduksi GC. 0x10 - Kode pengguna menginduksi GC dan memintanya menjadi GC yang memadatkan. |
Jenis | win:UInt32 | 0x0 - Pemblokiran pengumpulan sampah terjadi di luar pengumpulan sampah latar belakang. 0x1 - Pengumpulan sampah latar belakang. 0x2 - Pemblokiran pengumpulan sampah terjadi selama pengumpulan sampah latar belakang. |
ClrInstanceID | win:UInt16 | ID unik untuk instans CLR atau CoreCLR. |
GCEnd_V1 Event
Tabel berikut memerlihatkan kata kunci dan tingkat:
Kata kunci untuk meningkatkan peristiwa | Tingkat |
---|---|
GCKeyword (0x1) |
Informasional (4) |
Tabel berikut memperlihatkan informasi peristiwa:
Kejadian | ID Peristiwa | Dimunculkan ketika |
---|---|---|
GCEnd_V1 |
2 | Pengumpulan sampah telah berakhir. |
Tabel berikut memperlihatkan data peristiwa:
Nama bidang | Jenis data | Deskripsi |
---|---|---|
Hitung | win:UInt32 | Pengumpulan sampah nth. |
Kedalaman | win:UInt32 | Generasi yang dikumpulkan. |
ClrInstanceID | win:UInt16 | ID unik untuk instans CLR atau CoreCLR. |
GCHeapStats_V1 Event
Tabel berikut memerlihatkan kata kunci dan tingkat:
Kata kunci untuk meningkatkan peristiwa | Tingkat |
---|---|
GCKeyword (0x1) |
Informasional (4) |
Tabel berikut memperlihatkan informasi peristiwa:
Kejadian | ID Peristiwa | Deskripsi |
---|---|---|
GCHeapStats_V1 |
4 | Menunjukkan statistik tumpukan di akhir setiap pengumpulan sampah. |
Tabel berikut memperlihatkan data peristiwa:
Nama bidang | Jenis data | Deskripsi |
---|---|---|
GenerationSize0 | win:UInt64 | Ukurannya, dalam byte, memori generasi 0. |
TotalPromotedSize0 | win:UInt64 | Jumlah byte yang dipromosikan dari generasi 0 ke generasi 1. |
GenerationSize1 | win:UInt64 | Ukurannya, dalam byte, memori generasi 1. |
TotalPromotedSize1 | win:UInt64 | Jumlah byte yang dipromosikan dari generasi 1 ke generasi 2. |
GenerationSize2 | win:UInt64 | Ukurannya, dalam byte, memori generasi 2. |
TotalPromotedSize2 | win:UInt64 | Jumlah byte yang bertahan di generasi 2 setelah koleksi terakhir. |
GenerationSize3 | win:UInt64 | Ukuran, dalam byte, dari tumpukan objek besar. |
TotalPromotedSize3 | win:UInt64 | Jumlah byte yang bertahan di tumpukan objek besar setelah koleksi terakhir. |
FinalizationPromotedSize | win:UInt64 | Ukuran total, dalam byte, dari objek yang siap untuk finalisasi. |
FinalizationPromotedCount | win:UInt64 | Jumlah objek yang siap untuk finalisasi. |
PinnedObjectCount | win:UInt32 | Jumlah objek yang disematkan (tidak dapat dipindahkan). |
SinkBlockCount | win:UInt32 | Jumlah blok sinkronisasi yang digunakan. |
GCHandleCount | win:UInt32 | Jumlah handel pengumpulan sampah yang digunakan. |
ClrInstanceID | win:UInt16 | ID unik untuk instans CLR atau CoreCLR. |
GCHeapStats_V2 Event
Tabel berikut memerlihatkan kata kunci dan tingkat:
Kata kunci untuk meningkatkan peristiwa | Tingkat |
---|---|
GCKeyword (0x1) |
Informasional (4) |
Tabel berikut memperlihatkan informasi peristiwa:
Kejadian | ID Peristiwa | Deskripsi |
---|---|---|
GCHeapStats_V2 |
4 | Menunjukkan statistik tumpukan di akhir setiap pengumpulan sampah. |
Tabel berikut memperlihatkan data peristiwa:
Nama bidang | Jenis data | Deskripsi |
---|---|---|
GenerationSize0 | win:UInt64 | Ukurannya, dalam byte, memori generasi 0. |
TotalPromotedSize0 | win:UInt64 | Jumlah byte yang dipromosikan dari generasi 0 ke generasi 1. |
GenerationSize1 | win:UInt64 | Ukurannya, dalam byte, memori generasi 1. |
TotalPromotedSize1 | win:UInt64 | Jumlah byte yang dipromosikan dari generasi 1 ke generasi 2. |
GenerationSize2 | win:UInt64 | Ukurannya, dalam byte, memori generasi 2. |
TotalPromotedSize2 | win:UInt64 | Jumlah byte yang bertahan di generasi 2 setelah koleksi terakhir. |
GenerationSize3 | win:UInt64 | Ukuran, dalam byte, dari tumpukan objek besar. |
TotalPromotedSize3 | win:UInt64 | Jumlah byte yang bertahan di tumpukan objek besar setelah koleksi terakhir. |
FinalizationPromotedSize | win:UInt64 | Ukuran total, dalam byte, dari objek yang siap untuk finalisasi. |
FinalizationPromotedCount | win:UInt64 | Jumlah objek yang siap untuk finalisasi. |
PinnedObjectCount | win:UInt32 | Jumlah objek yang disematkan (tidak dapat dipindahkan). |
SinkBlockCount | win:UInt32 | Jumlah blok sinkronisasi yang digunakan. |
GCHandleCount | win:UInt32 | Jumlah handel pengumpulan sampah yang digunakan. |
ClrInstanceID | win:UInt16 | ID unik untuk instans CLR atau CoreCLR. |
GenerationSize4 | win:UInt64 | Ukuran, dalam byte, dari tumpukan objek yang disematkan. |
TotalPromotedSize4 | win:UInt64 | Jumlah byte yang bertahan dalam tumpukan objek yang disematkan setelah koleksi terakhir. |
GCCreateSegment_V1 Event
Tabel berikut memerlihatkan kata kunci dan tingkat:
Kata kunci untuk meningkatkan peristiwa | Tingkat |
---|---|
GCKeyword (0x1) |
Informasional (4) |
Tabel berikut memperlihatkan informasi peristiwa:
Kejadian | ID Peristiwa | Dimunculkan ketika |
---|---|---|
GCCreateSegment_V1 |
5 | Segmen pengumpulan sampah baru telah dibuat. Selain itu, saat pelacakan diaktifkan pada proses yang sudah berjalan, peristiwa ini dimunculkan untuk setiap segmen yang ada. |
Tabel berikut memperlihatkan data peristiwa:
Nama bidang | Jenis data | Deskripsi |
---|---|---|
Alamat | win:UInt64 | Alamat segmen. |
Ukuran | win:UInt64 | Ukuran segmen. |
Jenis | win:UInt32 | 0x0 - Tumpukan objek kecil. 0x1 - Tumpukan objek besar. 0x2 - Tumpukan baca-saja. |
ClrInstanceID | win:UInt16 | ID unik untuk instans CLR atau CoreCLR. |
Perhatikan bahwa ukuran segmen yang dialokasikan oleh pengumpul sampah khusus implementasi dan dapat berubah kapan saja, termasuk dalam pembaruan berkala. Aplikasi Anda tidak boleh membuat asumsi tentang atau bergantung pada ukuran segmen tertentu, juga tidak boleh mencoba mengonfigurasi jumlah memori yang tersedia untuk alokasi segmen.
GCFreeSegment_V1 Event
Tabel berikut memerlihatkan kata kunci dan tingkat:
Kata kunci untuk meningkatkan peristiwa | Tingkat |
---|---|
GCKeyword (0x1) |
Informasional (4) |
Tabel berikut memperlihatkan informasi peristiwa:
Kejadian | ID Peristiwa | Dimunculkan ketika |
---|---|---|
GCFreeSegment_V1 |
6 | Segmen pengumpulan sampah telah dirilis. |
Tabel berikut memperlihatkan data peristiwa:
Nama bidang | Jenis data | Deskripsi |
---|---|---|
Alamat | win:UInt64 | Alamat segmen. |
ClrInstanceID | win:UInt16 | ID unik untuk instans CLR atau CoreCLR. |
GCRestartEEBegin_V1 Event
Tabel berikut memerlihatkan kata kunci dan tingkat:
Kata kunci untuk meningkatkan peristiwa | Tingkat |
---|---|
GCKeyword (0x1) |
Informasional (4) |
Tabel berikut memperlihatkan informasi peristiwa:
Kejadian | ID Peristiwa | Dimunculkan ketika |
---|---|---|
GCRestartEEBegin_V1 |
7 | Dimulai kembali dari penangguhan runtime bahasa umum telah dimulai. |
Tidak ada data peristiwa.
GCRestartEEEnd_V1 Event
Tabel berikut memerlihatkan kata kunci dan tingkat:
Kata kunci untuk meningkatkan peristiwa | Tingkat |
---|---|
GCKeyword (0x1) |
Informasional (4) |
Tabel berikut memperlihatkan informasi peristiwa:
Kejadian | Id peristiwa | Dimunculkan ketika |
---|---|---|
GCRestartEEEnd_V1 |
3 | Dimulai kembali dari penangguhan runtime bahasa umum telah berakhir. |
Tidak ada data peristiwa.
GCSuspendEE_V1 Event
Tabel berikut memerlihatkan kata kunci dan tingkat:
Kata kunci untuk meningkatkan peristiwa | Tingkat |
---|---|
GCKeyword (0x1) |
Informasional (4) |
Tabel berikut memperlihatkan informasi peristiwa:
Kejadian | ID Peristiwa | Dimunculkan ketika |
---|---|---|
GCSuspendEE_V1 |
9 | Mulai penangguhan mesin eksekusi untuk pengumpulan sampah. |
Tabel berikut memperlihatkan data peristiwa:
Nama bidang | Jenis data | Deskripsi |
---|---|---|
Alasan | win:UInt16 | 0x0 - Lainnya. 0x1 - Pengumpulan sampah. 0x2 - Matikan domain aplikasi. 0x3 - Pitching kode. 0x4 - Matikan. 0x5 - Debugger. 0x6 - Persiapan pengumpulan sampah. |
Hitung | win:UInt32 | Jumlah GC pada saat itu. Biasanya, Anda akan melihat peristiwa Mulai GC berikutnya setelah ini, dan Jumlahnya akan menjadi Hitungan + 1 ini saat kami meningkatkan indeks GC selama pengumpulan sampah. |
ClrInstanceID | win:UInt16 | ID unik untuk instans CLR atau CoreCLR. |
GCSuspendEEEnd_V1 Event
Tabel berikut memerlihatkan kata kunci dan tingkat:
Kata kunci untuk meningkatkan peristiwa | Tingkat |
---|---|
GCKeyword (0x1) |
Informasional (4) |
Tabel berikut memperlihatkan informasi peristiwa:
Kejadian | ID Peristiwa | Dimunculkan ketika |
---|---|---|
GCSuspendEEEnd_V1 |
8 | Akhir penangguhan mesin eksekusi untuk pengumpulan sampah. |
Tidak ada data peristiwa.
GCAllocationTick_V2 Event
Tabel berikut memerlihatkan kata kunci dan tingkat:
Kata kunci untuk meningkatkan peristiwa | Tingkat |
---|---|
GCKeyword (0x1) |
Informasional (4) |
Tabel berikut memperlihatkan informasi peristiwa:
Kejadian | ID Peristiwa | Dimunculkan ketika |
---|---|---|
GCAllocationTick_V2 |
10 | Setiap kali sekitar 100 KB dialokasikan per timbunan objek. Artinya, SOH, LOH, dan POH mengakumulasi byte yang dialokasikan secara terpisah. Di Server GC, ini dilakukan per timbunan. |
Tabel berikut memperlihatkan data peristiwa:
Nama bidang | Jenis data | Deskripsi |
---|---|---|
AllocationAmount | win:UInt32 | Ukuran alokasi, dalam byte. Nilai ini akurat untuk alokasi yang kurang dari panjang ULONG (4.294.967.295 byte). Jika alokasi lebih besar, bidang ini berisi nilai terpotong. Gunakan AllocationAmount64 untuk alokasi yang sangat besar. |
AllocationKind | win:UInt32 | 0x0 - Alokasi objek kecil (alokasi berada dalam tumpukan objek kecil). 0x1 - Alokasi objek besar (alokasi berada dalam tumpukan objek besar). 0x2 - Alokasi objek yang disematkan (alokasi berada dalam timbunan objek yang disematkan). |
ClrInstanceID | win:UInt16 | ID unik untuk instans CLR atau CoreCLR. |
AllocationAmount64 | win:UInt64 | Ukuran alokasi, dalam byte. Nilai ini akurat untuk alokasi yang sangat besar. |
TypeId | win:Pointer | Alamat MethodTable. Ketika ada beberapa jenis objek yang dialokasikan selama peristiwa ini, ini adalah alamat MethodTable yang sesuai dengan objek terakhir yang dialokasikan (objek yang menyebabkan ambang 100 KB terlampaui). |
TypeName | win:UnicodeString | Nama jenis yang dialokasikan. Ketika ada beberapa jenis objek yang dialokasikan selama peristiwa ini, ini adalah jenis objek terakhir yang dialokasikan (objek yang menyebabkan ambang 100 KB terlampaui). |
HeapIndex | win:UInt32 | Tumpukan tempat objek dialokasikan. Nilai ini adalah 0 (nol) saat berjalan dengan pengumpulan sampah stasiun kerja. |
GCAllocationTick_V3 Event
Tabel berikut memerlihatkan kata kunci dan tingkat:
Kata kunci untuk meningkatkan peristiwa | Tingkat |
---|---|
GCKeyword (0x1) |
Informasional (4) |
Tabel berikut memperlihatkan informasi peristiwa:
Kejadian | ID Peristiwa | Dimunculkan ketika |
---|---|---|
GCAllocationTick_V2 |
10 | Setiap kali sekitar 100 KB dialokasikan per timbunan objek. Artinya, SOH, LOH, dan POH mengakumulasi byte yang dialokasikan secara terpisah. Di Server GC, ini dilakukan per timbunan. |
Tabel berikut memperlihatkan data peristiwa:
Nama bidang | Jenis data | Deskripsi |
---|---|---|
AllocationAmount | win:UInt32 | Ukuran alokasi, dalam byte. Nilai ini akurat untuk alokasi yang kurang dari panjang ULONG (4.294.967.295 byte). Jika alokasi lebih besar, bidang ini berisi nilai terpotong. Gunakan AllocationAmount64 untuk alokasi yang sangat besar. |
AllocationKind | win:UInt32 | 0x0 - Alokasi objek kecil (alokasi berada dalam tumpukan objek kecil). 0x1 - Alokasi objek besar (alokasi berada dalam tumpukan objek besar). 0x2 - Alokasi objek yang disematkan (alokasi berada dalam timbunan objek yang disematkan). |
ClrInstanceID | win:UInt16 | ID unik untuk instans CLR atau CoreCLR. |
AllocationAmount64 | win:UInt64 | Ukuran alokasi, dalam byte. Nilai ini akurat untuk alokasi yang sangat besar. |
TypeId | win:Pointer | Alamat MethodTable. Ketika ada beberapa jenis objek yang dialokasikan selama peristiwa ini, ini adalah alamat MethodTable yang sesuai dengan objek terakhir yang dialokasikan (objek yang menyebabkan ambang 100 KB terlampaui). |
TypeName | win:UnicodeString | Nama jenis yang dialokasikan. Ketika ada beberapa jenis objek yang dialokasikan selama peristiwa ini, ini adalah jenis objek terakhir yang dialokasikan (objek yang menyebabkan ambang 100 KB terlampaui). |
HeapIndex | win:UInt32 | Tumpukan tempat objek dialokasikan. Nilai ini adalah 0 (nol) saat berjalan dengan pengumpulan sampah stasiun kerja. |
Alamat | win:Pointer | Alamat objek terakhir yang dialokasikan. |
GCFinalizersBegin_V1 Event
Tabel berikut memerlihatkan kata kunci dan tingkat:
Kata kunci untuk meningkatkan peristiwa | Tingkat |
---|---|
GCKeyword (0x1) |
Informasional (4) |
Tabel berikut memperlihatkan informasi peristiwa:
Kejadian | ID Peristiwa | Dimunculkan ketika |
---|---|---|
GCFinalizersBegin_V1 |
14 | Awal menjalankan finalizer. |
Tidak ada data peristiwa.
GCFinalizersEnd_V1 Event
Tabel berikut memerlihatkan kata kunci dan tingkat:
Kata kunci untuk meningkatkan peristiwa | Tingkat |
---|---|
GCKeyword (0x1) |
Informasional (4) |
Tabel berikut memperlihatkan informasi peristiwa:
Kejadian | ID Peristiwa | Dimunculkan ketika |
---|---|---|
GCFinalizersEnd_V1 |
13 | Akhir menjalankan finalizer. |
Tabel berikut memperlihatkan data peristiwa:
Nama bidang | Jenis data | Deskripsi |
---|---|---|
Hitung | win:UInt32 | Jumlah finalizer yang dijalankan. |
ClrInstanceID | win:UInt16 | ID unik untuk instans CLR atau CoreCLR. |
GCCreateConcurrentThread_V1 Event
Tabel berikut memerlihatkan kata kunci dan tingkat:
Kata kunci untuk meningkatkan peristiwa | Tingkat |
---|---|
GCKeyword (0x1) |
Informasional (4) |
ThreadingKeyword (0x10000) |
Informasional (4) |
Tabel berikut memperlihatkan informasi peristiwa:
Kejadian | ID Peristiwa | Dimunculkan ketika |
---|---|---|
GCCreateConcurrentThread_V1 |
11 | Utas pengumpulan sampah bersamaan dibuat. |
Tidak ada data peristiwa.
GCTerminateConcurrentThread_V1 Event
Tabel berikut memerlihatkan kata kunci dan tingkat:
Kata kunci untuk meningkatkan peristiwa | Tingkat |
---|---|
GCKeyword (0x1) |
Informasional (4) |
ThreadingKeyword (0x10000) |
Informasional (4) |
Tabel berikut memperlihatkan informasi peristiwa:
Kejadian | ID Peristiwa | Dimunculkan ketika |
---|---|---|
GCTerminateConcurrentThread_V1 |
12 | Utas pengumpulan sampah bersamaan dihentikan. |
Tidak ada data peristiwa.