Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uyarı
.NET Framework 4'te profil oluşturmada önemli değişiklikler yapıldı.
Yönetilen bir işlem (uygulama veya hizmet) başlatıldığında ortak dil çalışma zamanını (CLR) yükler. CLR başlatıldığında, işlemin bir profil oluşturucuya bağlanıp bağlanmayacağına karar vermek için aşağıdaki iki ortam değişkenini değerlendirir:
COR_ENABLE_PROFILING: CLR yalnızca bu ortam değişkeni mevcutsa ve 1 olarak ayarlandıysa bir profil oluşturucuya bağlanır.
COR_PROFILER: COR_ENABLE_PROFILING denetimi geçerse, CLR daha önce kayıt defterinde depolanmış olması gereken bu CLSID veya ProgID'ye sahip profil oluşturucuya bağlanır. COR_PROFILER ortam değişkeni, aşağıdaki iki örnekte gösterildiği gibi bir dize olarak tanımlanır.
set COR_PROFILER={32E2F4DA-1BEA-47ea-88F9-C5DAF691C94A} set COR_PROFILER="MyProfiler"
Bir CLR uygulamasının profilini oluşturmak için uygulamayı çalıştırmadan önce COR_ENABLE_PROFILING ve COR_PROFILER ortam değişkenlerini ayarlamanız gerekir. Profil oluşturucu DLL'sinin de kayıtlı olduğundan emin olmanız gerekir.
Uyarı
.NET Framework 4'den başlayarak profil oluşturucuların kaydedilmesi gerekmez.
Uyarı
.NET Framework 4 ve sonraki sürümlerinde .NET Framework 2.0, 3.0 ve 3.5 profil oluşturucularını kullanmak için COMPLUS_ProfAPI_ProfilerCompatibilitySetting ortam değişkenini ayarlamanız gerekir.
Ortam Değişkeni Kapsamı
COR_ENABLE_PROFILING ve COR_PROFILER ortam değişkenlerini nasıl ayarlayacağınız, etki kapsamlarını belirler. Bu değişkenleri aşağıdaki yollardan biriyle ayarlayabilirsiniz:
Bir ICorDebug::CreateProcess çağrısında değişkenleri ayarlarsanız, bunlar yalnızca o sırada çalıştırdığınız uygulamaya uygulanır. (Bu uygulamalar, ortamı devralan uygulama tarafından başlatılan diğer uygulamalar için de geçerlidir.)
Değişkenleri bir Komut İstemi penceresinde ayarlarsanız, bu değişkenler bu pencereden başlatılan tüm uygulamalara uygulanır.
Değişkenleri kullanıcı düzeyinde ayarlarsanız, bunlar Dosya Gezgini ile başladığınız tüm uygulamalara uygulanır. Değişkenleri ayarladıktan sonra açtığınız bir Komut İstemi penceresinde bu ortam ayarları bulunur ve bu pencereden başlattığınız tüm uygulamalar da bu ayarlara sahip olur. Ortam değişkenlerini kullanıcı düzeyinde ayarlamak için Bilgisayarım'a sağ tıklayın, Özellikler'e tıklayın, Gelişmiş sekmesine tıklayın, Ortam Değişkenleri'ne tıklayın ve değişkenleri Kullanıcı değişkenleri listesine ekleyin.
Değişkenleri bilgisayar düzeyinde ayarlarsanız, bu değişkenler o bilgisayarda başlatılan tüm uygulamalara uygulanır. Bu bilgisayarda açtığınız Komut İstemi penceresinde bu ortam ayarları bulunur ve bu pencereden başlattığınız tüm uygulamalar da bu ayarlara sahip olur. Bu, söz konusu bilgisayardaki tüm yönetilen işlemlerin profil oluşturucunuzla başlayacağı anlamına gelir. Ortam değişkenlerini bilgisayar düzeyinde ayarlamak için Bilgisayarım'a sağ tıklayın, Özellikler'e tıklayın, Gelişmiş sekmesine tıklayın, Ortam Değişkenleri'ne tıklayın, değişkenleri Sistem değişkenleri listesine ekleyin ve bilgisayarınızı yeniden başlatın. Yeniden başlatıldıktan sonra değişkenler sistem genelinde kullanılabilir olacaktır.
Bir Windows Hizmeti profili oluştururken, ortam değişkenlerini ayarladıktan ve profil oluşturucu DLL'sini kaydettikten sonra bilgisayarınızı yeniden başlatmanız gerekir. Bu önemli noktalar hakkında daha fazla bilgi için Windows Hizmeti Profili Oluşturma bölümüne bakın.
Ek Dikkat Edilmesi Gerekenler
Profil oluşturucu sınıfı ICorProfilerCallback ve ICorProfilerCallback2 arabirimlerini uygular. .NET Framework sürüm 2.0'da bir profil oluşturucu uygulaması
ICorProfilerCallback2gerekir. Aksi takdirdeICorProfilerCallback2yüklenmez.Belirli bir ortamda bir işlemin profilini bir kerede yalnızca bir profil oluşturucu oluşturabilir. Farklı ortamlarda iki farklı profil oluşturucu kaydedebilirsiniz, ancak her birinin ayrı işlemlerin profilini oluşturması gerekir. Profil oluşturucu, profili oluşturulan işlemle aynı adres alanına eşlenen işlem içi COM sunucusu DLL'i olarak uygulanmalıdır. Bu, profil oluşturucunun işlem halinde çalıştığı anlamına gelir. .NET Framework, başka bir COM sunucusu türünü desteklemez. Örneğin, bir profil oluşturucu uzak bir bilgisayardan uygulamaları izlemek istiyorsa, her bilgisayarda toplayıcı aracıları uygulaması gerekir. Bu aracılar sonuçları toplu olarak işler ve merkezi veri toplama bilgisayarına iletir.
Profil oluşturucu, işlem içinde örneği oluşturulan bir COM nesnesi olduğundan, profili oluşturulan her uygulamanın profil oluşturucunun kendi kopyası olur. Bu nedenle, tek bir profil oluşturucu örneğinin birden çok uygulamadan gelen verileri işlemesi gerekmez. Ancak, diğer profillenmiş uygulamalardan günlük dosyasının üzerine yazılmasını önlemek için profil oluşturucunun günlük koduna mantık eklemeniz gerekir.
Profil Oluşturucu'ya başlatma
Her iki ortam değişkeni denetimi de geçtiğinde CLR, COM CoCreateInstance işlevine benzer şekilde profil oluşturucunun bir örneğini oluşturur. Profil oluşturucu doğrudan çağrısı CoCreateInstancearacılığıyla yüklenmez. Bu nedenle, CoInitializeiş parçacığı modelinin ayarlanmasını gerektiren çağrısından kaçınılır. CLR daha sonra profil oluşturucuda ICorProfilerCallback::Initialize yöntemini çağırır. Bu yöntemin imzası aşağıdaki gibidir.
HRESULT Initialize(IUnknown *pICorProfilerInfoUnk)
Profil oluşturucunun bir ICorProfilerInfo veya ICorProfilerInfo2 arabirim işaretçisini sorgulaması pICorProfilerInfoUnk ve daha sonra profil oluşturma sırasında daha fazla bilgi isteyebilmesi için bunu kaydetmesi gerekir.
Olay Bildirimlerini Ayarlama
Profil oluşturucu daha sonra hangi bildirim kategorileriyle ilgilendiğini belirtmek için ICorProfilerInfo::SetEventMask yöntemini çağırır. Örneğin, profil oluşturucu yalnızca işlev girişiyle ilgileniyorsa, bildirimleri ve çöp toplama bildirimlerini girin ve bırakın, aşağıdakileri belirtir.
ICorProfilerInfo* pInfo;
pICorProfilerInfoUnk->QueryInterface(IID_ICorProfilerInfo, (void**)&pInfo);
pInfo->SetEventMask(COR_PRF_MONITOR_ENTERLEAVE | COR_PRF_MONITOR_GC)
Profil oluşturucu, bildirim maskesini bu şekilde ayarlayarak hangi bildirimleri alacağını sınırlayabilir. Bu yaklaşım, kullanıcının basit veya özel amaçlı bir profil oluşturucu oluşturmasını sağlar. Ayrıca, profil oluşturucunun yoksayacağı bildirimleri gönderirken boşa harcanan CPU süresini de azaltır.
Bazı profil oluşturucu olayları sabittir. Bu, bu olaylar geri çağırmada ICorProfilerCallback::Initialize ayarlanır ayarlanmaz kapatılamayacağı ve yeni olayların açılamayacağı anlamına gelir. Sabit bir olayı değiştirme girişimleri başarısız bir HRESULT döndürülmeyle ICorProfilerInfo::SetEventMask sonuçlanır.
Windows Hizmeti Profili Oluşturma
Windows Hizmeti profili oluşturmak, ortak dil çalışma zamanı uygulamasının profilini oluşturmak gibidir. Her iki profil oluşturma işlemi de ortam değişkenleri aracılığıyla etkinleştirilir. İşletim sistemi başlatıldığında bir Windows Hizmeti başlatıldığından, bu konuda daha önce açıklanan ortam değişkenleri zaten mevcut olmalı ve sistem başlamadan önce gerekli değerlere ayarlanmalıdır. Ayrıca profil oluşturma DLL'sinin sistemde zaten kayıtlı olması gerekir.
COR_ENABLE_PROFILING ve COR_PROFILER ortam değişkenlerini ayarladıktan ve profil oluşturucu DLL'sini kaydettikten sonra, Windows Hizmeti'nin bu değişiklikleri algılaması için hedef bilgisayarı yeniden başlatmanız gerekir.
Bu değişikliklerin sistem genelinde profil oluşturmayı etkinleştireceğini unutmayın. Daha sonra çalıştırılan her yönetilen uygulamanın profilinin alınmasını önlemek için, hedef bilgisayarı yeniden başlattıktan sonra sistem ortamı değişkenlerini silmeniz gerekir.
Bu teknik ayrıca her CLR işleminin profilinin ayarlanmasına da yol açar. Profil oluşturucu, geçerli işlemin ilgi çekici olup olmadığını algılamak için ICorProfilerCallback::Initialize geri çağırmasına mantık eklemelidir. Aksi takdirde, profil oluşturucu başlatmayı gerçekleştirmeden geri çağırmada başarısız olabilir.