Eşzamanlılık Görselleştiricisi komut satırı yardımcı programı (CVCollectionCmd)

Komut satırından izlemeleri toplamak için Eşzamanlılık Görselleştiricisi komut satırı yardımcı programını (CVCollectionCmd.exe) kullanabilirsiniz, böylece bunları Visual Studio için Eşzamanlılık Görselleştiricisi'nde görüntüleyebilirsiniz. Araçlar Visual Studio yüklü olmayan bilgisayarlarda kullanılabilir.

Not

Eşzamanlılık Görselleştiricisi isteğe bağlı bir uzantıdır. (Daha önce Visual Studio'ya eklenmişti.) Visual Studio için Eşzamanlılık Görselleştiricisi koleksiyon araçlarını İndirme Merkezi'nden indirebilirsiniz.

Eşzamanlılık Görselleştiricisi komut satırı yardımcı programını indirin

Komut satırı yardımcı programını indirip yüklemek için Visual Studio için Eşzamanlılık Görselleştiricisi Toplama Araçları'na gidin ve yönergeleri izleyin. Varsayılan olarak, CVCollectionCmd.exe , x64 bilgisayarlarda %ProgramFiles%\Microsoft Eşzamanlılık Görselleştiricisi Koleksiyon Araçları\ (%ProgramFiles(x86)%\Microsoft Eşzamanlılık Görselleştiricisi Koleksiyon Araçları\ içinde yüklüdür.

CVCollectionCmd ile izleme toplama

Uygulamayı CVCollectionCmd ile başlatarak veya ekleyerek bir izleme toplayabilirsiniz. Seçenekleriniz için aşağıdaki komut başvurusuna bakın. Örneğin:

<Path>CVCollectionCmd /launch c:\myapp\myapp.exe /outdir c:\myapp\data

Komutlar ve parametreler

Komut satırı yardımcı programındaki komutlar ve parametreler hakkında yardım almak için komut istemine şunu yazın:

CvCollectionCmd /?

Seçenek Açıklama Parametreler Dönüş değerleri
Query Koleksiyonun başlatılıp başlatılmayacağını döndürür. Hiçbiri Koleksiyon başlamaya hazırsa 0.

Koleksiyon zaten devam ediyorsa 1.

Koleksiyon devam ediyor değilse ancak gerekli ETW oturumlarından biri veya daha fazlası zaten etkinse 2.
Launch Belirtilen işlemi Eşzamanlılık Görselleştiricisi altında çalıştırır. Yürütülebilir dosyanın yolu. Çalıştırma başarılı olursa 0.

Hedef uygulama başlatılamadığından çalıştırma başarısız olduysa 1.

CVCollectionCmd belirtilen çıkış dizinine yazmak için yeterli izinlere sahip olmadığından çalıştırma başarısız olduysa 13.
İliştir Sistem genelinde bir izleme toplamaya başlar; aksi takdirde, bir işlem belirtilirse bir işleme eklenir. Yok. Ek başarılı olursa 0.

Belirtilen işlem geçersiz veya belirsiz olduğundan ek başarısız olduysa 1.

CVCollectionCmd belirtilen çıkış dizinine yazmak için yeterli izinlere sahip olmadığından ek başarısız olduysa 13.
Ayır Koleksiyonu durdurur. Yok. Ayırma başarılı olursa 0.

Koleksiyon şu anda devam etmediğinden ayırma başarısız olduysa 1.

Koleksiyon durdurulamadığı için ayırma başarısız olduysa 2.
Analiz Belirtilen izlemeyi analiz eder. CVTrace dosyasının tam yolu. Analizin başarılı olup olmadığını 0 olarak belirleyin.

Belirtilen izleme sistem genelinde olduğundan ancak hedef işlem belirtilmediğinden çözümleme başlatılamıyorsa 1.

İzleme sistem genelinde olmadığından ve bir işlem belirtildiğinden çözümleme başlatılamıyorsa 2.

Belirtilen işlem geçersiz olduğundan çözümleme başarısız olduysa 3.

Belirtilen CVTrace dosyası geçersiz olduğundan çözümleme başarısız olduysa 4.
LaunchArgs Hedef yürütülebilir bağımsız değişkenlerini belirtir. Bu seçenek yalnızca Başlat komutu için geçerlidir. Uygulamanın komut satırı bağımsız değişkenleri. Yok.
Outdir İzleme dosyalarının kaydedildiği dizini belirtir. Başlat ve Ekle komutları için geçerlidir. Dizin yolu veya göreli yol. Yok.
İşlem Ekle komutu yürütülürken eklenecek işlemi veya Çözümle komutu yürütülürken analiz edilecek izleme işlemini belirtir. Ekle ve Çözümle komutları için geçerlidir. PID veya işlemin adı. Yok.
Config Varsayılanlar dışındaki koleksiyon ayarlarını istiyorsanız, yapılandırma dosyasının yolunu belirtir. Başlat, Ekle ve Çözümle komutları için geçerlidir. XML yapılandırma dosyasının dizin yolu veya göreli yolu. Yok.

Yapılandırma ayarlarını özelleştirme

İzlemeleri toplamak için CVCollectionCmd kullanıyorsanız ve koleksiyon ayarlarını özelleştirmek istiyorsanız, bunları belirtmek için bir yapılandırma dosyası kullanın.

Not

İzlemeleri toplamak için Visual Studio'yu kullandığınızda, yapılandırma dosyasını doğrudan değiştirmeyin. Bunun yerine, ayarları değiştirmek için Gelişmiş Ayarlar iletişim kutusunu kullanın.

Koleksiyon ayarlarını değiştirmek için makinede CVCollectionCmd yardımcı programını çalıştıracağınız bir yapılandırma dosyası oluşturun. Yapılandırma dosyasını sıfırdan oluşturabilir veya Visual Studio'nun yüklü olduğu bilgisayardaki yapılandırma dosyasını kopyalayıp değiştirebilirsiniz. Dosya UserConfig.xml olarak adlandırılır ve Yerel AppData klasöründe bulunur. Yardımcı programı çalıştırdığınızda, Başlat, Ekle veya Çözümle komutuyla birlikte Yapılandırma seçeneğini kullanın. Yapılandırma seçeneğiyle ilişkili parametrede yapılandırma dosyasının yolunu belirtin.

Yapılandırma dosyası etiketleri

Yapılandırma dosyası XML tabanlıdır. Geçerli etiketler ve değerler şunlardır:

Etiket Açıklama Değerler
Config Genel yapılandırma dosyasının özetini ayırır. Şu öğeleri içermelidir:

- MinorVersion
- MajorVersion
MajorVersion Yapılandırma dosyasının ana sürümünü belirtir. Çoğu Visual Studio projesi için 1 olmalıdır. 1 değilse, yardımcı program çalışmaz.
MinorVersion Yapılandırma dosyasının ikincil sürümünü belirtir. Çoğu Visual Studio projesi için 0 olmalıdır. 0 değilse, yardımcı program çalışmaz.
IncludeEnvSymbolPath Ortam simgesi yolunun (_NT_SYMBOL_PATH) kullanılıp kullanılmadığını belirleyen bir değer ayarlar. -True
-False
DeleteEtlsAfterAnalysis Analiz tamamlandığında ETL dosyalarının silinip silinmeyeceğini belirleyen bir değer ayarlar. -True
-False
SymbolPath Sembol sunucusunun yolunu belirtir. Daha fazla bilgi için bkz . Hata ayıklama simgesi dosyalarını almak için Microsoft Sembol Sunucusu'nu kullanma. Dizin adı veya URL.
İşaretleyiciler İşaretçi sağlayıcıları listesini içerir. Sıfır veya daha fazla MarkerProvider öğesi içerebilir.
MarkerProvider Tek bir işaretçi sağlayıcısı belirtir. Şu öğeleri içermelidir:

-Düzey
-GUID
-Adı

Şu öğeleri içerebilir:

-Kategori
-Isenabled
Düzey MarkerProvider'ın önem düzeyini ayarlar. -Düşük
-Normal
-Yüksek
- Kritik
-Her şeyi
GUID ETW işaretçi sağlayıcısının genel olarak benzersiz tanımlayıcısı. A GUID.
Veri Akışı Adı İşaretçi sağlayıcısının açıklamasını belirtir. Bir dize.
Kategoriler İşaretçi sağlayıcısı için toplanan kategorileri belirtir. Virgülle ayrılmış sayı dizesi veya sayı aralıkları.
IsEnabled İşaretçi sağlayıcısının koleksiyon için etkinleştirilip etkinleştirilmediğini belirleyen bir değer ayarlar. -True
-False
FilterConfig Koleksiyondan filtrelenen ETW olaylarının yapılandırma seçeneklerinin listesini belirtir. Şu öğeleri içerebilir:

- CollectClrEvents
- ClrCollectionOptions
- CollectSampleEvents
- CollectGpuEvents
- CollectFileIO
CollectClrEvents CLR olaylarının toplanıp toplanmayacağını belirleyen bir değer ayarlayın. -True
-False
ClrCollectionOptions Yerel uygulamalar için CLR olaylarının toplanıp toplanmayacağını ve NGEN rundown olaylarının toplanıp toplanmayacağını belirtir. Şu değerlerden birini, ikisini birden veya hiçbirini içermeyebilir:

- CollectForNative
- DisableNGenRundown
CollectSampleEvents Örnek olayların toplanıp toplanmadığını belirleyen bir değer ayarlar. -True
-False
CollectGpuEvents DX tarafından oluşturulan olayların toplanıp toplanmadığını belirleyen bir değer ayarlar. -True
-False
CollectFileIO Dosya G/Ç olaylarının toplanıp toplanmayacağını belirleyen bir değer ayarlar. -True
-False
UserBuffer Ayarlar Kullanıcı arabellek ayarları parametrelerinin listesini belirtir. Şu öğeleri içermelidir:

- BufferFlushTimer
-Buffersize
- MinimumBuffers
- MaximumBuffers
KernelBuffer Ayarlar Çekirdek arabellek ayarları parametrelerinin listesini belirtir. Şu öğeleri içermelidir:

- BufferFlushTimer
-Buffersize
- MinimumBuffers
- MaximumBuffers
BufferFlushTimer ETW arabelleklerinin temizleme zamanlayıcısını belirtir. Pozitif bir tamsayı.
Buffersize Her olay izleme oturumu arabelleği için ayrılan bellek miktarı (kilobayt cinsinden). 0'dan 1024'e kadar olan bir sayı.
Minimum Kasalar Olay izleme oturumunun arabellek havuzu için ayrılan en az arabellek sayısı. Mantıksal çekirdek sayısının iki katına eşit veya ondan büyük pozitif bir tamsayı.
MaximumBuffers Olay izleme oturumunun arabellek havuzu için ayrılan arabellek sayısı üst sınırı. MinimumBuffers değerinden büyük veya buna eşit bir sayı.
JustMyCode Yalnızca Kodum dizinlerinin listesini belirtir. Sıfır veya daha fazla MyCodeDirectory öğesinin listesi.
MyCodeDirectory Kodunuzu içeren bir dizin belirtir. Mutlak bir yol.

Örnek

En baştan bir yapılandırma dosyası oluşturmak yerine, aşağıdaki örneği kopyalayıp gereksinimlerinizi karşılayacak şekilde değiştirebilirsiniz.

<?xml version="1.0"?>
<LocalConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" MajorVersion="1" MinorVersion="0">

  <IncludeEnvSymbolPath>true</IncludeEnvSymbolPath>

  <DeleteEtlsAfterAnalysis>true</DeleteEtlsAfterAnalysis>

  <TraceLocation>C:\traces</TraceLocation>

  <SymbolPath>http://symweb</SymbolPath>

  <Markers>
    <MarkerProvider Name="Default" Guid="8d4925ab-505a-483b-a7e0-6f824a07a6f0" Level="Low" />
    <MarkerProvider Name="TPL" Guid="2e5dba47-a3d2-4d16-8ee0-6671ffdcd7b5" Level="Normal" />
    <MarkerProvider Name="TPL Dataflow" Guid="16f53577-e41d-43d4-b47e-c17025bf4025" Level="Normal" />
    <MarkerProvider Name="TPL Synchronization" Guid="ec631d38-466b-4290-9306-834971ba0217" Level="Normal" />
    <MarkerProvider Name="PLINQ" Guid="159eeeec-4a14-4418-a8fe-faabcd987887" Level="Normal" />
    <MarkerProvider Name="Concurrency Runtime" Guid="f7b697a3-4db5-4d3b-be71-c4d284e6592f" Level="Normal" />
    <MarkerProvider Name="Scenario Markers" Guid="fb9244c9-f23a-4966-8a9c-97a51f8c355b" Level="Low" />

    <!-- The IsEnabled and Categories elements are optional -->
    <MarkerProvider Name="myMarker1" Guid="d0dbb3a3-895c-4ce6-96d9-28f69d664dc3" Level="Critical" IsEnabled="false" Categories="0,1,3-5,8" />
    <MarkerProvider Name="myMarker2" Guid="03452127-a617-4302-9e30-c0d10442e4ee" Level="Low" IsEnabled="false" Categories="0,1,3-5,8-10,11-13" />
  </Markers>

  <FilterConfig>
    <CollectClrEvents>true</CollectClrEvents>
    <ClrCollectionOptions>CollectForNative DisableNGenRundown</ClrCollectionOptions>
    <CollectSampleEvents>true</CollectSampleEvents>
    <CollectGpuEvents>true</CollectGpuEvents>
    <CollectFileIO>true</CollectFileIO>
  </FilterConfig>

  <UserBufferSettings>
    <BufferFlushTimer>0</BufferFlushTimer>
    <BufferSize>256</BufferSize>
    <MinimumBuffers>512</MinimumBuffers>
    <MaximumBuffers>1024</MaximumBuffers>
  </UserBufferSettings>

  <KernelBufferSettings>
    <BufferFlushTimer>0</BufferFlushTimer>
    <BufferSize>256</BufferSize>
    <MinimumBuffers>512</MinimumBuffers>
    <MaximumBuffers>1024</MaximumBuffers>
  </KernelBufferSettings>

  <!-- List of MyCodeDirectory directories -->
  <JustMyCode>
    <MyCodeDirectory>C:\myBinaries1</MyCodeDirectory>
    <MyCodeDirectory>C:\myBinaries2</MyCodeDirectory>
  </JustMyCode>
</LocalConfig>