Aracılığıyla paylaş


Profil destekli en iyi duruma getirme

En iyi duruma getirme profil destekli iyileştirici test çalışmalarını .exe veya .dll dosyasının verilerini kullanır burada bir çıkış dosyası en iyi duruma getirme sağlar.Program üretim ortamında gerçekleştirmek büyük olasılıkla nasıl verileri temsil eder.

Profil destekli en iyi duruma getirme, yalnızca yerel hedefler için kullanılabilir: x 86, Itanium işlemci ailesi (IPF) veya x64.Ortak dil çalışma zamanı tarafından çalıştırılacak çıktı dosyaları için en iyi duruma getirme profil destekli kullanılamaz.Karışık yerli ve yönetilen kod ile bir derleme üretmek bile (ile derleme /clr), yalnızca yerel kodu en iyi duruma getirme profil destekli kullanamazsınız.Ayrıca destekli profil en iyi duruma getirme Windows Store apps için desteklenmez.Bu seçenekler IDE içinde bir proje oluşturmaya çalışırsanız, bir yapı hatasına neden olur.

[!NOT]

Test çalışmalarını profil dan toplanan bilgileri geçersiz kılma belirtirseniz, aksi durumda etkin olacak en iyi duruma getirme /Ob, /Os, veya /Ot.Daha fazla bilgi için, bkz. /Ob (satır içi işlevi genişleme) ve / Os, /Ot (Favor küçük kod, Favor hızlı kod).

Kullanma profil destekli en iyi duruma getirme işlemi genel bir bakış verilmiştir:

  • Bir veya daha fazla kaynak kodu dosyalarını içeren derleme /gl.

    /gl ile oluşturulmuş her modül çalışma zamanı davranışını yakalamak için en iyi duruma getirme profil destekli test çalışmaları sırasında incelenebilir.En iyi duruma getirme profil destekli yapıdaki her modül /gl. ile derlenmek zorunda değildirAncak, /gl ile derlenen modüller Araçlı ve daha sonra profil destekli en iyi duruma getirmeleri için kullanılabilir olacaktır.

  • İle bağlantı /LTCG:PGINSTRUMENT.

    /LTCG:PGINSTRUMENT boş .pgd dosyasını oluşturur.Test çalıştırması verileri .pgd dosyaya eklendikten sonra sonraki bağlantı adım (iyileştirilmiş yansıma oluşturma) giriş olarak kullanılabilir./LTCG:PGINSTRUMENT belirtirken, isteğe bağlı olarak belirtebileceğiniz /pgd varsayılan adı veya .pgd dosyası için konum.

  • Uygulama profili.

    Her zaman profili exe oturumunu sona erdirir ya da profili dll kaldırılmadan bir UygAdı! #.pgc dosyası oluşturulur..Pgc dosyası, belirli bir uygulama testi hakkında bilgi içerir.# diğer numarasına göre artırılır 1 ile başlayan bir numarası, UygAdı! #.pgc dizinindeki dosyalar.Test çalışması, en iyi duruma getirmek istediğiniz bir senaryo temsil etmez, .pgc dosyasını silebilirsiniz.

    Bir test çalışması sırasında açık olan .pgc dosyasının kapatılması ve yeni bir .pgc dosyası oluşturulmasını zorlayabilirsiniz pgosweep (örneğin, bir testi senaryosu sonuna uygulamayı kapatma ile çakışmadığından olduğunda) yardımcı programı.

    Kullanabileceğiniz PogoSafeMode seçeneğini tıklattığınızda uygulamanıza profil.Bu seçenek, güvenli mod veya hızlı mod uygulamada profili yüklemek isteyip istemediğinizi belirtmenize olanak sağlar.Bu modlar hakkında daha fazla bilgi için bkz: PogoSafeMode.

  • Bağlantı ile /LTCG:PGOPTIMIZE.

    /LTCG:PGOPTIMIZE en iyi duruma getirilmiş bir görüntü oluşturur.Bu adımı olarak geçen .pgd dosyayı girdi.Daha fazla bilgi için bkz: /LTCG:PGOPTIMIZE.

En iyi duruma getirilmiş çıkış dosyası oluşturun ve daha sonra ek profil daha iyileştirilmiş bir resim oluşturmak yararlı olabilir belirlemek bile mümkündür.Araçlı resim ve .pgd dosyası varsa, ek test çalışmaları yapabilirsiniz ve en iyileştirilmiş görüntü yeni .pgd dosyası ile yeniden.

Profil destekli iyileştirmeler listesi aşağıdadır:

  • Katıştırarak – Örneğin, bir işlev b, işlev çağrıları sık ve görece küçük b işlevi sonra en iyi duruma getirme profil destekli olacak a. işlevi satır içi işlev b a varsa

  • Sanal çağrısı Speculation – belirli bir işlev veya diğer yapılan bir işlev işaretçisi aracılığıyla sanal bir çağrı sık hedefler, profil destekli en iyileştirme koşullu olarak yürütülen doğrudan sık hedeflenen işlevine çağrı ekleyebilirsiniz ve doğrudan çağrı inlined olabilir.

  • Ayırma kaydetmek – profil verileri ile en iyi duruma getirme ayırma daha iyi sonuçlar kaydedin.

  • Temel Blok en iyi duruma getirme – temel blok en iyi duruma getirme temporally aynı sayfaları (konum) kümesinde yerleştirilmesi için belirli bir çerçeve içinde yürütme sık yürütülen temel taşları sağlar.Bu, böylece bellek yükünü en aza kullanıldığında, sayfa sayısını en aza indirir.

  • Boyutu/hızını en iyi duruma getirme – burada çok fazla zaman harcadığını program işlevleri hız için iyileştirilemiyor.

  • İşlev düzeni – arama grafiği ve profili arayan veya aranan davranış bağlı olarak, aynı yürütülmesine yol boyunca olma eğilimindedir işlevleri aynı bölümünde yerleştirilir.

  • Koşullu Dal en iyi duruma getirme – profil destekli değer araştırmaları, en iyi duruma getirme, switch ifadesinin belirli bir değeri diğer değerlerden daha sık kullanılan bulabilirsiniz.Bu değer daha sonra switch deyimini alınmasını.Aynı ile if/else yönergeleri en iyi duruma getiricisi nerede sipariş edebilirsiniz yapılabilir Eğer/değilse, ya da Eğer veya değilse bloğu yerleştirilir ilk hangi blok bağlı olarak daha sık doğru olsun.

  • Ölü kod ayrımı – profil oluşturma sırasında çağrılmaz kod bölümleri kümesini sonuna eklenen özel bir bölümünde taşınabilir.Bu etkili bir şekilde bu bölümde sık kullanılan sayfaları dışında tutar.

  • eh kod ayrımı – takılması yürütülmekte olan eh kodu, genellikle taşınabilir ayrı bir bölümde en iyi duruma getirme profil destekli özel durumlar yalnızca olağanüstü koşullar ortaya karar verirken.

  • Bellek yapı içleri – bir iç sık sık çağrılırsa belirlenebilir, genişlemesi yapı içleri, daha iyi karar.Bir iç de taşır veya kopyalar blok boyutuna göre getirilebilir.

Daha fazla bilgi için bkz. Walkthrough: Using Profile-Guided Optimizations.

Bu Bölümde

Profil destekli iyileştirme araçları

Nasıl yapılır: birden çok pgo profilini tek bir profille birleştirmek

Ayrıca bkz.

Başvuru

C/C++ yapı araçları