Bagikan melalui


Warisan

Profil rekaman Windows Performance Recorder (WPR) disimpan dalam file XML yang memiliki ekstensi .wprp. WPR mendukung pewarisan objeknya dengan menggunakan atribut Base="" dalam skema XML profil WPR. Pewarisan memungkinkan Anda untuk menyimpan, menggunakan kembali, dan membangun definisi profil umum untuk merekam skenario khusus. Misalnya, Anda dapat menambahkan penyedia ke profil yang ada dan dengan demikian mengubah ukuran buffer tanpa mengubah definisi di profil aktual.

Penting Saat Anda menulis profil WPRP, Anda harus mewarisi data profil dari profil dasar bawaan WPR, atau menggunakan kembali nama sesi yang sama untuk menghindari mengaktifkan penyedia yang sama beberapa kali.

Profil Dasar

Anda bisa menggunakan tag XML untuk mengubah konten profil. Anda harus menggunakan atribut Operasi . Nilai yang mungkin untuk atribut Operasi adalah Atur dan Tambahkan. Dalam contoh berikut, DerivedProfile menambahkan kata kunci sistem ReadyThread ke kata kunci CpuConfig, CSwitch, dan SampledProfile yang ditentukan BaseProfile .

<SystemCollector
  Id="BaseSystemCollector" ... />

<SystemProvider
  Id="MainSystemProvider">
  <Keywords>
    <Keyword
      Value="CpuConfig"/>
    <Keyword
      Value="CSwitch"/>
    <Keyword
      Value="SampledProfile"/>
  </Keywords>
</SystemProvider>

<SystemProvider
  Id="AnotherSystemProvider">
  <Keywords> 
    <Keyword
      Value="ReadyThread"/>
  </Keywords>
</SystemProvider>

<Profile
  Id="BaseProfile"...>
  ... 
  <Collectors>
    <SystemCollectorId
      Value="BaseSystemCollector">
      <SystemProviderId
        Value="MainSystemProvider"/>
    </SystemCollectorId>
  </Collectors>
</Profile>

<Profile
  Id="DerivedProfile"
  Base="BaseProfile"...>
... 
  <Collectors Operation="Add"> <!--Use "Add" operation to add new provider to an existing one. -->
    <SystemCollectorId
      Value="BaseSystemCollector">
      <SystemProviderId
        Value="AnotherSystemProvider"/> <!--Specify provider to add. --> 
    </SystemCollectorId> 
  </Collectors>
</Profile>

Catatan Jika Anda tidak menentukan atribut Operasi tetapi Anda menggunakan pewarisan, WPR menggunakan Set nilai default.

Contoh

Contoh berikut menentukan profil untuk mode pengelogan file. Versi memori mewarisi dari versi file dan hanya menimpa mode pengelogan.

<Profile
   Id="SampleProfile.Verbose.File"
   LoggingMode = "File"
   DetailLevel = "Verbose"
   Name = "SampleProfile"
   Description = "A sample profile">
   …

</Profile>

<Profile
   Id="SampleProfile.Verbose.Memory"
   Base="SampleProfile.Verbose.File”
   LoggingMode = "Memory"
   DetailLevel = "Verbose"
   Name = "SampleProfile"
   Description = "A sample profile"/>

Praktik Terbaik Pewarisan

Warisan yang dirancang dengan buruk dapat menciptakan konsekuensi yang tidak diinginkan. Sebaiknya Anda hanya mendapatkan kolektor dari kolektor, atau profil dari profil. Anda tidak boleh menggabungkan derivasi di beberapa jenis objek.

Tiga contoh berikut menjelaskan dua cara yang baik untuk menggunakan pewarisan; contoh ketiga menjelaskan penggunaan warisan yang buruk.

Contoh 1: Penggunaan Warisan yang Baik

Anda ingin menggunakan spesifikasi Pengumpul Peristiwa-A, dengan beberapa modifikasi. Untuk melakukannya:

  1. Tentukan kolektor kedua (Collector-B) yang mewarisi spesifikasinya dari Collector-A.

  2. Ubah Collector-B.

  3. Atur profil untuk mereferensikan Collector-B.

Ini adalah praktik yang baik karena hanya objek kolektor yang mewarisi atribut dari objek pengumpul lain, yang kemudian langsung dirujuk oleh profil.

Contoh 2: Penggunaan Warisan yang Baik

  1. Profil-A mereferensikan Collector-A.

  2. Profile-B mewarisi atribut dari Profile-A.

  3. Anda mengubah atribut tertentu di Profil-B.

Ini adalah praktik yang baik karena hanya objek profil yang berasal dari objek profil lain.

Contoh 3: Penggunaan Pewarisan yang Buruk

  1. Profil-A mereferensikan Collector-A.

  2. Kolektor-B mewarisi dari Kolektor-A.

  3. Profil-B mewarisi dari Profil-A dan juga mereferensikan Collector-B.

Dalam hal ini, Profil-B mereferensikan Collector-B dua kali: satu kali melalui pewarisan oleh Profil-A, dan satu kali dengan referensi langsung ke Collector-B. Dalam hal ini, tidak jelas bagaimana definisi untuk Collector-B harus dievaluasi; yaitu, derivasi mana yang harus diutamakan. Contoh ini menggambarkan praktik yang buruk karena pengurutan tidak terdefinisi dan dapat menyebabkan hasil yang bertentangan berdasarkan urutan operasi. Jenis warisan ini harus dihindari.

Penulisan Profil Perekaman

Skema WPRControlProfiles