Mpgo.exe (Yönetilen Profil Destekli İyileştirme Aracı)

Yönetilen Profil Destekli İyileştirme Aracı (Mpgo.exe), Yerel Görüntü Oluşturucu (Ngen.exe) tarafından oluşturulan yerel görüntü derlemelerini iyileştirmek için yaygın son kullanıcı senaryolarını kullanan bir komut satırı aracıdır. Bu araç, profil verileri oluşturan eğitim senaryolarını çalıştırmanızı sağlar. Yerel Görüntü Oluşturucu (Ngen.exe), oluşturulan yerel görüntü uygulaması derlemelerini iyileştirmek için bu verileri kullanır. Eğitim senaryosu, uygulamanızın beklenen kullanımının deneme sürümüdür. Mpgo.exe Visual Studio Ultimate 2012 ve sonraki sürümlerde kullanılabilir. Visual Studio 2013'den başlayarak Windows 8.x Store uygulamalarını iyileştirmek için Mpgo.exe de kullanabilirsiniz.

Profil destekli iyileştirme, eğitim senaryolarından veri toplayarak ve yerel görüntülerin düzenini iyileştirmek için kullanarak uygulama başlatma süresini, bellek kullanımını (çalışma kümesi boyutu) ve aktarım hızını geliştirir.

Başlangıç zamanı ve Ara Dil (IL) derlemeleri için çalışma kümesi boyutuyla ilgili performans sorunlarıyla karşılaştığınızda, ilk olarak tam zamanında (JIT) derleme maliyetlerini ortadan kaldırmak ve kod paylaşımını kolaylaştırmak için Ngen.exe kullanmanızı öneririz. Ek iyileştirmelere ihtiyacınız varsa uygulamanızı daha da iyileştirmek için Mpgo.exe kullanabilirsiniz. Performans artışlarını değerlendirmek için temel olarak, iyileştirilmiş olmayan yerel görüntü derlemelerindeki performans verilerini kullanabilirsiniz. Mpgo.exe kullanmak daha hızlı soğuk başlangıç sürelerine ve daha küçük bir çalışma kümesi boyutuna neden olabilir. Mpgo.exe, Ngen.exe iyileştirilmiş yerel görüntü derlemeleri oluşturmak için kullandığı IL derlemelerine bilgi ekler. Daha fazla bilgi için .NET blogunda Masaüstü Uygulamalarınız için Başlatma Performansını İyileştirme girdisine bakın.

Bu araç Visual Studio ile otomatik olarak yüklenir. Aracı çalıştırmak için Geliştirici Komut İstemi'ni veya yönetici kimlik bilgileriyle Geliştirici PowerShell'i kullanın.

Komut istemine aşağıdaki komutu girin:

Masaüstü uygulamaları için:

mpgo -Scenario <command> [-Import <directory>] -AssemblyList <assembly1>  <assembly2> ... -OutDir <directory> [options]

Windows 8.x Store uygulamaları için:

mpgo -Scenario <packageName> -AppID <appId> -Timeout <seconds>

Parametreler

Mpgo.exe için tüm bağımsız değişkenler büyük/küçük harfe duyarlı değildir. Komutlara bir tire ön eklenmiştir.

Uyarı

Gerekli bir komut olarak ya da -Scenario-Import kullanabilirsiniz, ancak ikisini birden kullanamazsınız. Seçeneği belirtirseniz gerekli parametrelerden -Reset hiçbiri kullanılmaz.

Gerekli parametre Description
-Scenario < komut>

—veya—

-Scenario < packageName>

-veya-

-Import < dizin>
Masaüstü uygulamaları için, tüm komut satırı bağımsız değişkenleri dahil olmak üzere iyileştirmek istediğiniz uygulamayı çalıştırmak için komutunu belirtmek için kullanın -Scenario . Boşluk içeren bir yol belirtiyorsa komutun çevresinde üç çift tırnak işareti kümesi kullanın; örneğin: mpgo.exe -scenario """C:\My App\myapp.exe""" -assemblylist """C:\My App\myapp.exe""" -outdir "C:\optimized files". Çift tırnak işareti kullanmayın; komut boşluk içeriyorsa düzgün çalışmaz.

-veya-

Windows 8.x Store uygulamalarında, profil bilgileri oluşturmak istediğiniz paketi belirtmek için kullanın -Scenario . Tam paket adı yerine paket görünen adını veya paket ailesi adını belirtirseniz, Mpgo.exe yalnızca bir eşleşme varsa sağladığınız adla eşleşen paketi seçer. Belirtilen adla birden çok paket eşleşiyorsa, Mpgo.exe bir paket seçmenizi ister.

—veya—

daha önce iyileştirilmiş derlemelerdeki iyileştirme verilerinin içindeki -Importderlemeleri iyileştirmek için kullanılması gerektiğini belirtmek için kullanın-AssemblyList. directory , önceden iyileştirilmiş dosyaları içeren dizini belirtir. veya -AssemblyList içinde -AssemblyListFile belirtilen derlemeler, içeri aktarılan dosyalardaki veriler kullanılarak iyileştirilecek derlemelerin yeni sürümleridir. Derlemelerin eski sürümündeki iyileştirme verilerini kullanmak, senaryoyu yeniden çalıştırmadan derlemelerin daha yeni sürümlerini iyileştirmenizi sağlar. Ancak, içeri aktarılan ve hedef derlemeler önemli ölçüde farklı kodlar içerirse, iyileştirme verileri etkisiz olur. veya -AssemblyList içinde -AssemblyListFile belirtilen derleme adları, -Import tarafından belirtilen dizinde bulunmalıdır. Boşluk içeren bir yol belirtiyorsa dizin çevresinde üç çift tırnak işareti kümesi kullanın.

ya da -Scenario-Importbelirtmelisiniz, ancak her iki parametreyi de belirtmemelisiniz.
-OutDir < dizin> İyileştirilmiş derlemelerin yerleştirildiği dizin. Çıkış dizini klasöründe bir derleme zaten varsa, yeni bir kopya oluşturulur ve adına bir dizin numarası eklenir; örneğin: assemblyname-1.exe. Boşluk içeren bir yol belirtiyorsa dizin çevresinde çift tırnak işareti kullanın.
-AssemblyList < assembly1 assembly2 ...>

—veya—

-AssemblyListFile < dosya>
Profil bilgilerini toplamak istediğiniz, boşluklarla ayrılmış derlemelerin (.exe ve .dll dosyaları dahil) listesi. Belirtilen veya C:\Dir\*.dll geçerli çalışma dizinindeki tüm derlemeleri belirtebilir *.dll veya seçebilirsiniz. Daha fazla bilgi için Açıklamalar bölümüne bakın.

—veya—

Hakkında profil bilgilerini toplamak istediğiniz derleme listesini içeren ve satır başına bir derleme listeleyen bir metin dosyası. Derleme adı kısa çizgiyle (-) başlıyorsa, derleme dosyası listesini kullanın veya derlemeyi yeniden adlandırın.
-AppID < appId> Belirtilen paketteki uygulamanın kimliği. Joker karakteri (*) kullanırsanız Mpgo.exe paketteki AppID'leri listelemeye < çalışır ve package_family_name> geri döner! Uygulama başarısız olursa. Ünlem işareti (!) ön ekli bir dize belirtirseniz Mpgo.exe paket ailesi adını sağlanan bağımsız değişkenle birleştirir.
-Timeout < Saniye> Windows 8.x Store uygulamasının uygulamadan çıkmadan önce çalışmasına izin verme süresi.
İsteğe bağlı parametre Description
-64bit 64 bit sistemler için derlemeleri bağlar. Derlemeniz kendisini 64 bit olarak bildirse bile, 64 bit derlemeler için bu parametreyi belirtmeniz gerekir.
-ExeConfig < Dosyaadı> Senaryonuzun sürüm ve yükleyici bilgilerini sağlamak için kullandığı yapılandırma dosyasını belirtir.
-f profil verilerinin imzalı olsa bile ikili derlemeye eklenmesini zorlar. Derleme imzalandıysa, yeniden imzalanmalıdır; aksi takdirde derleme yüklenip çalıştırılamaz.
-Reset Durdurulan profil oluşturma oturumunun derlemelerinizi etkilemediğinden emin olmak için ortamı sıfırlar ve sonra çıkar. Ortam, profil oluşturma oturumundan önce ve sonra varsayılan olarak sıfırlanır.
-Timeout < saniye olarak süre> Profil oluşturma süresini saniye cinsinden belirtir. GUI uygulamaları için gözlenen başlangıç sürelerinden biraz daha uzun bir değer kullanın. Zaman aşımı süresinin sonunda, uygulama çalışmaya devam etse de profil verileri kaydedilir. Bu seçeneği ayarlamazsanız, profil oluşturma uygulama kapatılana kadar devam eder ve bu sırada veriler kaydedilir.
-LeaveNativeImages Senaryo çalıştırıldıktan sonra, izlenen yerel görüntülerin kaldırılmaması gerektiğini belirtir. Bu seçenek öncelikle senaryo için belirttiğiniz uygulamayı çalıştırırken kullanılır. Sonraki Mpgo.exeçalıştırmaları için yerel görüntülerin yeniden kullanılmasını önleyecektir. Uygulamanızı çalıştırmayı bitirdiğinizde, bu seçeneği belirtirseniz önbellekte yalnız bırakılmış yerel görüntüler olabilir. Bu durumda, Mpgo.exe aynı senaryo ve derleme listesiyle çalıştırın ve bu yerel görüntüleri kaldırmak için parametresini kullanın -RemoveNativeImages .
-RemoveNativeImages Belirtilen bir çalıştırmadan -LeaveNativeImages temizler. belirtirseniz-RemoveNativeImages, Mpgo.exe ve -64bitdışındaki -AssemblyList bağımsız değişkenleri yoksayar ve tüm izlenen yerel görüntüler kaldırıldıktan sonra çıkar.

Açıklamalar

Komut satırında hem hem de -AssemblyList-AssemblyListFile birden çok kez kullanabilirsiniz.

Derlemeleri belirtirken tam yol adları belirtmezseniz Mpgo.exe geçerli dizine bakar. Yanlış bir yol belirtirseniz, Mpgo.exe bir hata iletisi görüntüler, ancak diğer derlemeler için veri oluşturmaya devam eder. Eğitim senaryosu sırasında yüklenmeyen bir derleme belirtirseniz, bu derleme için eğitim verileri oluşturulmaz.

Listedeki bir derleme genel derleme önbelleğindeyse, profil bilgilerini içerecek şekilde güncelleştirilmez. Profil bilgilerini toplamak için bunu genel derleme önbelleğinden kaldırın.

Önceden derlenmiş yerel görüntülerin avantajı genellikle yalnızca çalışma zamanında önemli JIT derlemesini ortadan kaldırdığında görüldüğünden, Ngen.exe ve Mpgo.exe kullanımı yalnızca büyük yönetilen uygulamalar için önerilir. Yoğun çalışma kümesi olmayan "Hello World" stilindeki uygulamalarda Mpgo.exe çalıştırmak herhangi bir avantaj sağlamaz ve Mpgo.exe profil verilerini bile toplamayabilir.

Uyarı

ASP.NET uygulamaları ve Windows Communication Foundation (WCF) hizmetleri için Ngen.exe ve Mpgo.exe önerilmez.

Mpgo.exe Kullanmak için

  1. Visual Studio Ultimate 2012 ve uygulamanızın yüklü olduğu bir bilgisayar kullanın.

  2. Mpgo.exe gerekli parametrelerle yönetici olarak çalıştırın. Örnek komutlar için sonraki bölüme bakın.

    İyileştirilmiş ara dil (IL) derlemeleri parametresi tarafından -OutDir belirtilen klasörde oluşturulur (örneklerde bu klasördür C:\Optimized ).

  3. Ngen.exe için kullandığınız IL derlemelerini, tarafından -OutDirbelirtilen dizinden profil bilgilerini içeren yeni IL derlemeleriyle değiştirin.

  4. Uygulama kurulumu (Mpgo.exetarafından sağlanan görüntüleri kullanarak) iyileştirilmiş yerel görüntüler yükler.

Önerilen İş Akışı

  1. parametresiyle -Scenario Mpgo.exe kullanarak iyileştirilmiş IL derlemeleri kümesi oluşturun.

  2. İyileştirilmiş IL derlemelerini kaynak denetimine denetleyin.

  3. Derleme işleminde, Ngen.exegeçirmek üzere iyileştirilmiş IL görüntüleri oluşturmak için derleme sonrası adım olarak parametresiyle -Import Mpgo.exe çağırın.

Bu işlem, tüm derlemelerin iyileştirme verilerine sahip olmasını sağlar. Güncelleştirilmiş iyileştirilmiş derlemeleri (adım 1 ve 2) daha sık iade ederseniz, performans sayıları ürün geliştirme sürecinde daha tutarlı olur.

Visual Studio'dan Mpgo.exe kullanma

Visual Studio'dan Mpgo.exe çalıştırabilirsiniz ( Nasıl yapılır: Derleme Olaylarını Belirtme (C#)) makalesine aşağıdaki kısıtlamalarla bakabilirsiniz:

  • Visual Studio makroları varsayılan olarak sondaki eğik çizgi işaretlerini de kullandığından, tırnak içine alınmış yolları sondaki eğik çizgilerle kullanamazsınız. (Örneğin, -OutDir "C:\Output Folder\" geçersiz.) Bu kısıtlamaya geçici bir çözüm bulmak için sondaki eğik çizgiden kaçabilirsiniz. (Örneğin, bunun yerine kullanın -OutDir "$(OutDir)\" .)

  • Varsayılan olarak, Mpgo.exe Visual Studio derleme yolunda değildir. Yolu Visual Studio'ya eklemeniz veya Mpgo komut satırında tam yolu belirtmeniz gerekir. Visual Studio'daki -Scenario derleme sonrası olayda veya -Import parametresini kullanabilirsiniz. Ancak tipik bir işlem, Visual Studio için Geliştirici Komut İstemi'nden bir kez kullanmak -Scenario ve ardından her derlemeden sonra iyileştirilmiş derlemeleri güncelleştirmek için kullanmaktır -Import ; örneğin: "C:\Program Files\Microsoft Visual Studio 11.0\Team Tools\Performance Tools\mpgo.exe" -import "$(OutDir)tmp" -assemblylist "$(TargetPath)" -outdir "$(OutDir)\".

Örnekler

Visual Studio için Geliştirici Komut İstemi'nden alınan aşağıdaki Mpgo.exe komutu bir vergi uygulamasını iyileştirir:

mpgo -scenario "C:\MyApp\MyTax.exe /params par" -AssemblyList Mytax.dll MyTaxUtil2011.dll -OutDir C:\Optimized -TimeOut 15

Aşağıdaki Mpgo.exe komutu bir ses uygulamasını iyileştirir:

mpgo -scenario "C:\MyApp\wav2wma.exe -input song1.wav -output song1.wma" -AssemblyList transcode.dll -OutDir C:\Optimized -TimeOut 15

Aşağıdaki Mpgo.exe komutu, derlemelerin daha yeni sürümlerini iyileştirmek için önceden iyileştirilmiş derlemelere ait verileri kullanır:

mpgo.exe -import "C:\Optimized" -assemblylist "C:\MyApp\MyTax.dll" "C:\MyApp\MyTaxUtil2011.dll" -outdir C:\ReOptimized

Ayrıca bakınız