Profil oluşturma zaman çizelgesine kullanıcı işaretleri ekleme (C#, C++)

Kullanıcı İşaretleri, kodunuza kullanıcı işareti işlevleri ekleyerek Visual Studio'nun profil oluşturma araçlarına göre özel olayları izlemenizi sağlar. Kullanıcı işaretleri zaman çizelgesi grafiklerinde görsel işaretler olarak görünür. Bunu tek bir olayı izlemek veya bir aralığı izlemek için yapabilirsiniz. Örneğin, "stop" ve "start" olay aralığını izleyebilirsiniz.

Profil oluşturma kullanıcı işaretlerini gösteren ekran görüntüsü.

Not

Bu özellik Için Visual Studio 2022 sürüm 17.11 Preview 3 gerekir. Bu özellik Tanılama Hub'ında hata ayıklama sırasında değil Performans Profili Oluşturucu'da kullanılabilir.

Yükleme ve ayarlama

NuGet paketini kullanarak veya doğru kaynak dosyaları ekleyerek özellik için destek yükleyebilirsiniz.

  • NuGet Paketini kullanarak yükleme (C#)

    Microsoft.VisualStudio.DiagnosticsHub.UserMarks paketini indirin.

  • Kaynak dosyaları ekleyerek yükleme (C#, C++)

    Visual Studio'yu yükledikten sonra şu klasörü açın: [VS yükleme yolu]\Common7\IDE\CommonExtensions\Platform\DiagnosticsHub.

    C# kodu için projenize UserMarks.cs ve UserMarksRange.cs ekleyin.

    Yerel C++ kodu için projenize UserMarks.h ekleyin.

Kullanıcı işaretleri ekleme (C#)

Proje derleme yapılandırmasına aşağıdaki ön işlemci tanımını ekleyin: DIAGHUB_ENABLE_TRACE_SYSTEM.

Visual Studio'da tanımı eklemek için:

  1. Çözüm Gezgini'da projeye sağ tıklayın ve özellikler'i seçin.

  2. Genel > Koşullu derleme simgeleri oluştur'a> tıklayın.

  3. Hata Ayıklama ve Yayın derlemeleri için özel simge alanlarına önişlemci tanımı olarak ekleyin DIAGHUB_ENABLE_TRACE_SYSTEM .

Kullanıcı işaretleri nesnesini ekleyin ve yayın. Aşağıdaki kodda kullanıcı işaretleri ekleme örneği gösterilmektedir.

using Microsoft.DiagnosticsHub;

// Create a user mark
var myUserMark = new UserMarks("MyMark");

// Emit the usermark
myUserMark.Emit("Event happened!");

// Emit statically
UserMarks.EmitMessage("Emitting just a message");

// Emitting a range
using (var myRange = new UserMarkRange("MyMethodRange"))
{
   // Your code here
}

Kullanıcı işaretleri ekleme (C++)

Yerel kullanıcı işaretleri API'sini kullanmak için projeye UserMarks.h ekleyin ve uygulamanıza aşağıdaki kodu ekleyin:

#define DIAGHUB_ENABLE_TRACE_SYSTEM
#include "UserMarks.h"
DIAGHUB_DECLARE_TRACE;

// Start the trace system
DIAGHUB_START_TRACE_SYSTEM();

// Initialize user marks
USERMARKS_INITIALIZE(L"User mark name");

// Initialize user mark range
USERMARKRANGE_INITIALIZE(L"Range name");

// Emit events
USERMARKS_EMIT(L"Message to emit with user mark");
USERMARKRANGE_START(L"Message to emit with range");
USERMARKRANGE_END();

// Stop the trace system
DIAGHUB_STOP_TRACE_SYSTEM();

Kullanıcı işaretlerini görüntüleme

  1. Projeniz Visual Studio'da açıkken Performans Profili Oluşturucu'yu (Alt + F2) açın, ardından bir araç seçin ve Başlangıç düğmesini seçin.

  2. Uygulamanıza eklediğiniz kullanıcı işareti kodunun çalıştığından emin olun.

    Kullanıcı işaretleri zaman çizelgesi grafiğinin üzerindeki cetvelde ve zaman damgaları, ilgili işlem ve yaydığınız tüm iletiler hakkındaki ayrıntıları içeren bir tabloda gösterilir.

    Zaman çizelgesinde kullanıcı işareti ters üçgen olarak görünür.

  3. Kullanıcı işaretleri hakkındaki ayrıntıları görmek için Özet bölmesinde Kullanıcı işaretlerini göster'i seçin.

    Zaman çizelgesini gösteren ekran görüntüsü.

    Ayrıntılar, Kullanıcı İşaretleri sekmesinde görüntülenir.

    Kullanıcı işaretlerini gösteren ekran görüntüsü.

  4. Zaman çizelgesinde kullanıcı işareti ayrıntılarını görmek için cetveldeki işaretlerin üzerine gelin.

    Kullanıcı işaretinin üzerine gelindiğinde gösterilen ekran görüntüsü.

  5. Ayrıntılar görünümünü filtrelemek için zaman çizelgesi grafiğinde bir zaman aralığı seçin veya bir satıra sağ tıklayıp başlangıç ve bitiş saatlerini seçerek zaman çizelgesi grafiğini filtreleyin.

    Ayrıca, aralıklardaki aralıkları ayarlayarak veya birden çok kullanıcı işareti seçerek görünümü filtreleyebilirsiniz.

    Kullanıcı işareti aralığı ayarlamayı gösteren ekran görüntüsü.