Aracılığıyla paylaş


/MP (Birden Çok Süreçle Derleme)

/MP Seçeneği, komut satırında kaynak dosyalarını derlemek için gereken toplam süre azaltabilir./MP Seçeneği derleyicinin bir veya daha fazla kendi kopyalarını, her birini ayrı bir işlemle oluşturmak neden olur.Sonra bu kopyaları eşzamanlı olarak kaynak dosyalarını derlemek.Sonuç olarak, kaynak dosyaları oluşturmak için gereken toplam süre önemli ölçüde azalır.

/MP[processMax]

Arguments

  • processMax
    (İsteğe bağlı) Derleyicinin oluşturduğu işlem en fazla sayısı.

    processMax Bağımsız değişkeni 1'den 65536 aralık gerekir.Aksi durumda, derleyici uyarı iletisi yayınlar D9014, göz ardı eder processMax bağımsız değişkeni ve en fazla işlem sayısını 1 olduğu varsayılır.

    Atlarsanız processMax bağımsız değişkeni, derleyici sayısını alır etkili işlemci , bilgisayarınızın işletim sistemi ve her işlemci için bir işlem oluşturur.

Notlar

/MP Derleyici seçeneği, çok sayıda dosya derlemek zaman yapı zamanı önemli ölçüde azaltabilirsiniz.Yapı süresini kısaltmak için derleyici kadar oluşturur processMax kendisini kopyalar ve aynı zamanda kaynak dosyalarını derlemek için bu kopyaları kullanır./MP Derlemeleri, ancak bağlantı veya bağlantı zamanı kod oluşturma seçeneği uygulanır.Varsayılan olarak /MP seçeneği kapalıdır.

Bir bilgisayardaki işlemci sayısına, derlemek için dosya sayısını ve I/O kapasitesi gibi sistem kaynaklarının kullanılabilirliğini geliştirme yapı zamanında bağlıdır.Denemeler /MP belirli bir proje oluşturmak için en iyi ayar belirlemek için seçeneği.Bu karar vermenize yardımcı olacak öneriler için bkz: yönergeleri.

Uyumsuz seçeneklerini ve dil özellikleri

/MP Seçenek, bazı derleyici seçenekleri ve dil özellikleri ile uyumlu değil.Uyumsuz derleyici seçeneği ile kullanırsanız, /MP seçeneği, derleyicinin uyarı veren D9030 göz ardı eder ve /MP seçeneği.Uyumsuz dil özelliğini kullanıyorsanız, derleyici hatası verir C2813sonra sona erer veya geçerli derleyici uyarı düzeyi seçeneği bağlı olarak devam eder.

[!NOT]

İzin, aynı anda yürütülen derleyicileri çıktılarını aynı anda konsol veya belirli bir dosyaya yazmak istediğiniz çünkü çoğu seçenekleri birbiriyle uyumlu değil.Sonuç olarak, çıkış intermix ve bozuk.Bazı durumlarda, seçenekleri birleşimi performansı daha da kötüsü olmasına neden olur.

Derleyici seçenekleri ve uyumlu dil özellikleri aşağıdaki tabloda listelenmektedir /MP seçeneği:

Seçenek veya dil özelliği

Açıklama

#import önişlemci yönergesi

Tür kitaplığı türlerini C++ sınıflarını dönüştürür ve sonra bu sınıfların bir üstbilgi dosyasına yazar.

/E, /EP

Standart çıktıya önişlemci çıktı kopyalar (stdout).

/Gm

Artımlı bir yeniden etkinleştirir.

/showIncludes

Standart hata dosyaları listesini yazar (stderr).

/Yc

Önceden derlenmiş üstbilgi dosyasına yazar.

Tanı iletileri

Uyumlu olmayan bir seçenek veya dil özelliği belirtirseniz, /MP seçeneği, bir tanılama iletisi alırsınız.İletileri ve davranışı, derleyici aşağıdaki tabloda listelenmektedir:

Tanılama iletisi

Açıklama

Derleyici davranışı

C2813

#import Yönergesi ile uyumlu değil /MP seçeneği.

Derleme sürece biten bir derleyici uyarısı seviyesini Aksi halde seçenek belirtir.

D9014

Geçersiz bir değer belirtildiğinde processMax bağımsız değişkeni.

Derleyici geçersiz değerini yok sayar ve değer olarak 1 varsayar.

D9030

Belirtilen seçenek ile uyumlu /MP.

Derleyicisinin yoksaydığı /MP seçeneği.

Yönergeler

Ölçüm performans

Toplam üretim zamanını performansını ölçmek için kullanın.Bir fiziksel saatiyle yapı süresini ölçebilirsiniz veya yapı başlatır ve durdurur zaman arasındaki farkı hesaplar yazılımını kullanabilirsiniz.Bilgisayarınızda birden fazla işlemci varsa, fiziksel bir saat daha doğru bir yazılım zaman ölçümü daha sonuçlar.

Geçerli İşlemci

Bir bilgisayar olarak da bilinen etkili işlemcileri olan bir veya daha fazla sanal işlemci, her biri kendi fiziksel işlemci için olabilir.Her fiziksel işlemci çekirdeği bir veya daha fazla olabilir ve her çekirdek işletim sisteminin bir çekirdek için hiper iş parçacığı sağlar, iki sanal işlemci gibi görünüyor.

Örneğin, bir çekirdek olan bir fiziksel işlemci varsa, bir bilgisayarı etkin bir işlemci vardır ve hiper iş parçacığı devre dışıdır.Aksine, bir bilgisayar, her biri iki çekirdeği olan, iki fiziksel işlemci varsa ve etkin hiper iş parçacığı çekirdeğe sahip sekiz etkili işlemci bulunmaktadır.Diğer bir deyişle, (8 verimli işlemciler için) (2 fiziksel işlemci) = x (fiziksel işlemci başına 2 Çekirdek) x (hiper iş parçacığı nedeniyle çekirdek başına 2 etkili işlemci).

Atlarsanız processMax bağımsız değişkeni /MP seçeneği, derleyici geçerli işlemci işletim sisteminden alır ve verimli işlemci başına bir işlem oluşturur.Ancak, derleyici belirli bir işlemciye işlemi yürüten garanti etmez; işletim sistemi bu karar verir.

İşlem sayısı

Derleyici kaynak dosyalarını derlemek için kullanacağınız işlem sayısını hesaplar.Değer komut satırında belirttiğiniz kaynak dosyalarının sayısını ve açıkça veya örtük olarak belirlediğiniz işlemlerin sayısı daha az olduğunu /MP seçeneği.Açıkça belirtirseniz, en fazla işlem sayısını ayarlayabilirsiniz processMax bağımsız değişkeni /MP seçeneği.Veya atlarsanız bir bilgisayar sayısına eşit etkili işlemciler için varsayılan processMax bağımsız değişkeni.

Örneğin, aşağıdaki komut satırında belirttiğiniz varsayalım:

cl /MP7 a.cpp b.cpp c.cpp d.cpp e.cpp

Bu durumda, küçük olanı beş kaynak dosyaları ve en çok yedi işlemden çünkü derleyici beş işlemleri kullanır.Alternatif olarak, bilgisayarınızda iki etkili işlemci varsa ve aşağıdaki komut satırında belirttiğiniz varsayalım:

cl /MP a.cpp b.cpp c.cpp

Bu durumda iki işlemci işletim sistemine bildirir; Bu nedenle, derleyici iki işlem kendi hesaplamada kullanır.Sonuç olarak, iki işlem ve üç kaynak dosyaları daha az olduğu için derleyici yapı ile iki işlem yürütülür.

Yapı düzeni ve kaynak dosyaları

Kaynak dosyaları komut satırında göründükleri sırayla derlenmemiş.Derleyici derleme kopyalarını içeren işlemler kümesi oluşturur, ancak her işlem çalýþtýrdýðýnda, işletim sistemi zamanlar.Sonuç olarak, belirli bir sırada kaynak dosyalarının derleneceği garanti edemez.

Bir işlem yeniden derlemek kullanılabilir olduğunda kaynak dosyası derlenir.İşlemler'den daha fazla dosya varsa, dosyaları ilk kümesi kullanılabilir işlemler tarafından derlenmiştir.Bir işlem bir önceki dosya işleme tamamlanır ve kalan dosyaların birinde çalışmaya uygun olduğunda kalan dosyalar işlenir.

Aynı kaynak dosyası birden çok kez bir komut satırında belirtmeyin.Bir araç otomatik olarak oluşturur, bu, örneğin, ortaya çıkabilir bir derleme görevleri dosyası projesinde bağımlılık bilgilerini dayanır.Belirtmezseniz, /MP seçeneği, derleyici dosya listesini sırayla işler ve dosyanın her örneğini yeniden derler.Ancak, belirtirseniz, /MP seçeneği, farklı derleyicileri aynı anda aynı dosya derlemek.Sonuç olarak, farklı derleyicileri aynı anda aynı çıktı dosyasına yazmak için ENTER'e basın.Bir derleyici çıktı dosyasına özel kullanım yazma erişimi edinmek ve başarılı ve diğer derleyiciler dosya erişim hatası ile başarısız olur.

Tür kitaplıkları (#import) kullanma

Derleyici kullanımını desteklemiyor #import yönergesi ile /MP geçin.Mümkünse, bu soruna geçici bir çözüm bulmak için şu adımları izleyin:

  • Tüm #import yönergeleri, çeşitli kaynak dosyaları için bir veya daha fazla dosya ve ardından bu dosyaları olmadan derlemek /MP seçeneği.Sonucu oluşturulan üstbilgi dosyaları kümesidir.

  • Geriye kalan, kaynak dosyaları, Ekle #include oluşturulan üstbilgi belirtin ve sonra geriye kalan derleme yönergeleri kaynak dosyaları kullanarak /MP seçeneği.

Visual Studio Proje ayarları

MSBUILD.exe aracı

Visual Studiokullanan MSBuild.exe çözüm ve projeleri oluşturmak için aracı.**/maxcpucount:**number (Veya **/m:**number) MSBuild.exe'yi aracının komut satırı seçeneğini aynı anda birden fazla proje yapı.Ve /MP derleyici seçeneği aynı anda birden çok derleme birimi oluşturmak.Şunlardan birini veya her ikisini birden kullanarak uygulamanız için uygun değilse, çözümünüzün yapı süresini kısaltmak /MP ve /maxcpucount.

Çözümünüzün yapı süresini kısmen yapı oluşturma gerçekleştirmeniz işlemlerin sayısına bağlıdır.number Bağımsız değişkeni /maxcpucount MSBuild seçeneği aynı anda oluşturmak için proje üst sınırını belirtir.Benzer şekilde, processMax bağımsız değişkeni /MP derleyici seçeneği aynı zamanda yapı için derleme birimlerinin en fazla sayısını belirtir.Yoksa /maxcpucount seçeneği belirtir P projeleri ve /MP seçeneği belirtir C işler, en çok PxC işlemleri aynı anda yürütmek.

Kılavuz için kullanmaya karar MSBuild veya /MP teknolojisi aşağıdaki gibidir:

  • Her proje birkaç dosyaları ile birçok proje varsa, kullanın MSBuild aracı.

  • Birkaç projelerle her proje içinde çok sayıda dosya varsa, kullanın /MP seçeneği.

  • Projeleri ve proje başına dosya sayısı Dengeli, her ikisini de kullanmanız MSBuild ve /MP.Başlangıçta ayarladığınız /maxcpucount oluşturmak için proje sayısı seçeneğine ve /MP , bilgisayarınızdaki işlemci seçeneği.Performansı ölçmek ve en iyi sonuçlar için ayarlarınızı yapın.Toplam yapı süresi ile memnun olana kadar bu döngüyü yineleyin.

/Gm derleyici seçeneği

Varsayılan olarak, proje oluşturmak sağlar /Gm derleyici seçeneği (artımlı derlemeler) hata ayıklama yapıları ve sürüm için yapıların devre dışı bırakır.Bu nedenle, /MP derleyici seçeneği otomatik olarak devre dışı hata ayıklama yapılarında varsayılan ile çakıştığından /Gm derleyici seçeneği.

Ayrıca bkz.

Başvuru

#import Yönergesi (C++)

MSBuild Komut Satırı Başvurusu