Mpgo.exe (Yönetilen Profil Temelli İ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 verilerini 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ü uygulama derlemelerini iyileştirmek için bu verileri kullanır. Eğitim senaryosu, uygulamanızın beklenen bir kullanımına ilişkin denemedir. Mpgo.exe, Visual Studio Ultimate 2012 ve sonraki sürümlerinde kullanılabilir. Visual Studio 2013'dan başlayarak Windows 8.x Store uygulamalarını iyileştirmek için Mpgo.exe de kullanabilirsiniz.

Profil destekli en iyi duruma getirme süreci, eğitim senaryolarından veri toplayıp yerel görüntülerin düzenini en iyi duruma getirmek üzere onları kullanarak verimi, bellek kullanımını (çalışma kümesi boyutu) ve uygulama başlatma süresini iyileştirir.

Ara Dil (IL) derlemeleri için başlatma süresi ve çalışma kümesi boyutuyla ilgili performansı sorunlarıyla karşılaştığınızda, just-in-time (JIT) (tam zamanında) derleme maliyetlerini ortadan kaldırmak ve kod paylaşımını kolaylaştırmak için ilk Ngen.exe'yi kullanmanızı öneririz. Ek geliştirmeler gerekiyorsa, uygulamanızı daha ileri düzeyde iyi hale getirmek etmek için Mpgo.exe kullanabilirsiniz. Performans artışlarını değerlendirmek için temel olarak, en iyi duruma getirilmemiş yerel görüntü derlemelerindeki performans verilerini kullanabilirsiniz. Mpgo.exe kullanıldığında soğuk başlangıç sürelerinde kısalma ve çalışma kümesi boyutunda azalma görülebilir. Mpgo.exe, en iyi duruma getirilmiş yerel görüntü derlemeleri oluşturmak için Ngen.exe'yi kullanan 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 birlikte otomatik olarak yüklenir. Aracı çalıştırmak için Yönetici kimlik bilgileriyle Geliştirici Komut İstemi'ni veya 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 duyarsızdır. Komutlara önek olarak bir tire işareti eklenir.

Not

Gerekli bir komut olarak veya –Import kullanabilirsiniz–Scenario, ancak ikisini birden kullanamazsınız. Seçeneğini belirtirseniz gerekli parametrelerin –Reset hiçbiri kullanılmaz.

Gerekli parametre Description
-Scenario<Komut>

—veya—

-Scenario<Paketadı>

-veya-

-Import<Dizin>
Masaüstü uygulamalarında, en iyi duruma getirmek istediğiniz uygulamayı çalıştırmak için komut satırı bağımsız değişkenleri de dahil olmak üzere 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ışmazlar.

-veya-

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

—veya—

daha önce iyileştirilmiş derlemelerden gelen iyileştirme verilerinin içindeki -AssemblyListderlemeleri iyileştirmek için kullanılması gerektiğini belirtmek için kullanın-Import. directory , daha önce iyileştirilmiş dosyaları içeren dizini belirtir. veya –AssemblyListFile içinde –AssemblyList belirtilen derlemeler, içeri aktarılan dosyalardaki veriler kullanılarak iyileştirilecek derlemelerin yeni sürümleridir. Derlemelerin eski sürümlerine ait en iyi duruma getirme verilerini kullanmak, senaryoyu yeniden çalıştırmadan derlemelerin yeni sürümlerini en iyi duruma getirmenizi sağlar. Ancak, içe aktarılan ve hedef derlemeler önemli ölçüde farklı kodlar içeriyorsa, en iyi duruma getirme verileri etkisiz olur. veya –AssemblyListFile içinde –AssemblyList belirtilen derleme adları, dizin tarafından –Import 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 belirtmelisiniz.
-OutDir<Dizin> En iyi duruma getirilmiş derlemelerin yerleştirileceğ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>
Hakkında profil bilgileri toplamak istediğiniz derlemeleri (.exe ve .dll dosyaları gibi) boşluklarla ayrılmış olarak içeren bir liste. Belirtilen veya *.dll geçerli çalışma dizinindeki tüm derlemeleri belirtebilir C:\Dir\*.dll veya seçebilirsiniz. Daha fazla bilgi için Açıklamalar bölümüne bakın.

—veya—

Her satırda bir derleme olacak şekilde, hakkında profil bilgileri toplamak istediğiniz derlemelerin listesini içeren bir metin dosyası. Bir derleme adı tire işareti (-) ile başlıyorsa, bir derleme dosyası listesi kullanın veya derlemeyi yeniden adlandırın.
-AppID<Appıd> 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! Başarısız olursa uygulama. Başında önek olarak ünlem işareti (!) konmuş bir dize belirtirseniz, Mpgo.exe paket aile 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 kullanır. Derlemeniz kendisini 64-bit olarak bildiriyor olsa da 64-bit derlemeler için bu parametreyi belirtmelisiniz.
-ExeConfig<Dosyaadı> Senaryonuzun sürüm ve yükleyici bilgilerini sağlamak üzere kullandığı yapılandırma dosyasını belirtir.
-f İmzalanmış olsa da, ikili bir derlemeye profil verilerinin eklenmesini sağlar. Derleme imzalanmışsa, yeniden imzalanması gerekir; aksi takdirde derleme yüklenemez ve çalıştırılamaz.
-Reset İptal edilen bir profil oluşturma oturumunun derlemelerinizi etkilemediğinden emin olmak için ortamı sıfırlar ve ardından çıkış yapar. Ortam varsayılan olarak bir profil oluşturma oturumundan önce ve sonra sıfırlanır.
-Timeout<saniye olarak süre> Profil oluşturma süresini saniye cinsinden belirtir. GUI uygulamaları için, gözlemlenen başlangıç zamanlarınızdan biraz daha büyük bir değer kullanın. Uygulama çalışmaya devam etse de, zaman aşımı süresinin sonunda profil verileri kaydedilir. Bu seçeneği ayarlamazsanız, profil oluşturma işlemi uygulamayı kapanana kadar devam eder, ardından veriler kaydedilir.
-LeaveNativeImages Kullanılan yerel görüntülerin senaryo çalıştırıldıktan sonra kaldırılmayacağını belirtir. Bu seçenek öncelikle senaryo için belirttiğiniz uygulamayı çalıştırırken kullanılır. Mpgo.exe'nin sonraki çalışmaları için yerel görüntülerin yeniden oluşturulmasını önler. Bu seçeneği belirtirseniz, uygulamanızı çalıştırmayı tamamladığınızda, önbellekte üst öğesi olmayan yerel görüntüler olabilir. Bu durumda, aynı senaryo ve derleme listesiyle Mpgo.exe çalıştırın ve parametresini –RemoveNativeImages kullanarak bu yerel görüntüleri kaldırın.
-RemoveNativeImages Belirtilen bir –LeaveNativeImages çalıştırmadan temizler. belirtirseniz-RemoveNativeImages, Mpgo.exe ve –AssemblyListdışındaki -64bit bağımsız değişkenleri yoksayar ve tüm izlemeli 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 dizinde arar. 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üklenmemiş bir derleme belirtirseniz, o derleme için eğitim verisi oluşturulmaz.

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

Ngen.exe ve Mpgo.exe'nin kullanılması yalnızca yönetilen büyük uygulamalar için önerilir, çünkü önceden derlenmiş yerel görüntülerin yararı genellikle yalnızca çalışma zamanında önemli ölçüde JIT derlemesini kaldırdığında görülür. Yoğun çalışma kümesi içermeyen "Merhaba Dünya" stilindeki uygulamalarda Mpgo.exe çalıştırmak herhangi bir avantaj sağlamaz ve Mpgo.exe profil verilerini bile toplamayabilir.

Not

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

Mpgo.exe'yi kullanmak için

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

  2. Mpgo.exe'yi bir yönetici olarak gerekli parametrelerle ç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. Mpgo.exe tarafından sağlanan görüntüleri kullanan uygulama kurulumu en iyi duruma getirilmiş yerel görüntüleri yükler.

Önerilen İş Akışı

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

  2. En iyi duruma getirilmiş IL derlemelerini kaynak denetime girin.

  3. Derleme işleminde, Ngen.exe geçirilecek 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 en iyi duruma getirilmiş verilere sahip olmasını sağlar. Güncelleştirilmiş en iyi duruma getirilmiş derlemeleri daha sık iade ederseniz (1. ve 2. adım), tüm üretim geliştirme sürecinde performans numaraları daha tutarlı olur.

Visual Studio'dan Mpgo.exe'yi kullanma

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

  • Visual Studio makroları aynı zamanda varsayılan olarak sonlarında eğik çizgiler içerdiğinden, sonda eğik çizgileri olan tırnak işaretli yollar 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 yapı yolu üzerinde değildir. Yolu Visual Studio'ya eklemeli ya da Mpgo komut satırında tam yolu belirtmelisiniz. Visual Studio'daki –Scenario derleme sonrası olayda veya –Import parametresini kullanabilirsiniz. Ancak, tipik işlem Visual Studio için Geliştirici Komut İstemi'nden bir kez kullanmak –Scenario ve ardından her derlemeden sonra en iyi duruma getirilmiş 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 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 komut bir ses uygulamasını en iyi duruma getirir:

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 yeni sürümleri en iyi duruma getirmek için daha önce en iyi duruma getirilmiş derlemelere ait verileri kullanır:

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

Ayrıca bkz.