2009-07-10 37 views

cevap

5

"Araçlar" -> "Seçenekler" -> "Projeler ve Çözümler" -> "Timing kurmak" "VC++ Proje Ayarları"

Kene.

+1

Cidden, bu kadar kolay mı? Hala çözümümden hoşlanıyorum! :) –

+0

Yapı Zamanlaması, her dosya için değil, çeşitli oluşturma işlemlerinin zamanlarını verir. –

0

Derleyicinin bu sürümünü kullandığımdan beri uzun bir süre oldu, ancak konsolun derleme yaptığı dosyanın adını (komut satırını kullandığınızda) yazdığını hatırlıyorum. Eğer durum buysa, o zaman aşağıdakileri yapar bir program yazabilirsiniz: Kaynak dosya adları arayan borusundan

  • Okuma bir boruya stdout'u yönlendirme, komut satırı derleyici üzerinde

    1. CreateProcess
    2. bir kaynak dosya adı görülür her seferinde, iyi giderdi, her dosya için alınan kez

    inşa dışarı bu yaklaşım C++ geliştirilebilir iken baskı, cari zaman damgası boru kapalıdır

  • not Bunu uygulamak için Perl gibi bir araç kullanmak daha kolay olabilir.

  • +0

    teşekkürler greg bu güzel bir yaklaşım ... –

    +0

    wat bir Python komut dosyası yazmak hakkında? –

    +0

    Elbette, Python bunun için de aynı derecede uygun olacaktır. Bunu gerçekleştirmek için –

    6

    Visual Studio 2010 kullanıyorum, ancak Visual Studio'nun diğer sürümlerinde benzer bir şey olabilir. VS2010'da her dosyayı derlemek için harcanan zamanı basan komut satırı seçenekleri/Bt + 'ya eklenebilir. Bu nedenle, "Yapılandırma Özellikleri" -> "C/C++" -> "Komut Satırı" -> "Ek Seçenekler" altındaki bir proje özelliklerinde ekle/Bt +

    /Bt + seçeneğinin ayarlanması, çıktıda (gibi günlük dosyası) hatları şunlardır:

    time(c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\c1.dll)=0.05110s < 25394686804 - 25394831194 > BB [C:\not-important\nlopt-2.4.2\direct\DIRect.c] 
    
    Bu cevap sayesinde bulundu https://blogs.msdn.microsoft.com/vcblog/2010/04/01/vc-tip-get-detailed-build-throughput-diagnostics-using-msbuild-compiler-and-linker/ bu seçeneği

    fazla bilgi https://stackoverflow.com/a/3513043/453436

    zaman çizgileri bağlı ayıklamak için pek çok yol vardır neyi Kullanabileceğiniz araçlar. Bul, grep ve perl bir arada bir bash kabuk altında yaptım. Aşağıdaki size en uzun ilk olarak sıralanmış derleme zamanı verecektir.

    find . -name '*.log' | xargs grep time | perl -ne '$_ =~ /=(.*?)s.*\[(.*)\]/; print "$1 $2\n";' |sort -rn 
    
    +0

    Teşekkürler! VS2013 kullanıyorum ve bu aslında dosya başına derleme süresini gösterir. Başka bir cevapta belirtildiği gibi "Oluşturma Zamanlaması" seçeneğini kullanmak, yalnızca proje başına derleme/bağlantı sürelerini gösterir. – opetroch

    İlgili konular