2010-07-28 13 views
84

Microsoft'un MSDN'sine ve tüm web'e baktım, ancak hala ne olduğuna dair gerçekten iyi bir fikre sahip olamadım. Başlatma sırasında bir kerede tam tersine,"Eklemeli bağlantı" nedir?

o onun yürütme sırasında farklı zamanlarda tamamlanan program yükler dll demek ?

Tamamen yol muyum? :)

cevap

97

Bağlama çıktınıza içine araya kaynak dosyalarından inşa .obj dosyaları, yanı sıra referans herhangi .lib tüm dosyaları ambalaj içerir (örn .exe veya .dll). artan bağlama olmadan

, bu sıfırdan her zaman yapılmalıdır.

Artan bağlama daha kolay küçük bir değişiklik ve yeniden derleme yaparken bağlayıcı mevcut exe/dll güncellemek için kılan bir şekilde exe/dll bağlar.

Yani, artan bağlama sadece derlemek ve projenizi bağlamak için daha hızlı hale getirir.

http://msdn.microsoft.com/en-us/library/4khtbfyf.aspx

Edit: Logan tarafından belirtildiği gibi, artan bağlama da uyumsuz o olabilir

sadece çalışma zamanı etkisi burada decribed gibi, exe/dll biraz daha büyük ve daha yavaş yapabilir olmasıdır link time code generation ile - bu nedenle olası bir performans optimizasyonu kaybediliyor. salma çalışma zamanı performansı artırmak için inşa için Sen ayıklama için artımlı bağlama kullanmak isteyebilirsiniz

gelişimini hızlandırmak, ancak devre dışı bırakmak için inşa eder. olmadan, possibily kodunuzu düzenlemek ve anında onu yeniden derlemek için -

Ayrıca http://msdn.microsoft.com/en-us/library/151kt790.aspx

+0

Ah, linkerlerin bunu her zaman yaptığını sanıyordum! Yani, 'artımlı bağlantı' kapatılırken bağlayıcı her seferinde her şeyi sıfırdan bağlayacaktır? – Russel

+6

"Pratikte bunun etkisi muhtemelen endişelenmeye değmez." "normal" bağlantı ve artan bağlantı arasındaki fark, çalışma zamanında bu kadar büyük bir performans olmayabilirken, artan bağlantı, bağlantı süresi kodu oluşturma ile uyumsuz bir performans farkı yaratabileceğinden bahsetmeye değer. –

+2

@Russel: Evet öyle olacak. @Logan: Teşekkürler, cevabımı güncelledim. –

10

oldukça önemlisi artan bağlantı Edit&Continue için bir ön koşuldur:

Gecikme DLL sen ne düşündüğünü olabilir yüklenen yeniden başlatma.

Bu nedenle, hata ayıklama yapılarına sahip olmak iyi bir şeydir, ancak sürüm oluşturmaz.

İlgili konular