2011-06-13 24 views
7

Razor görüntü motorunu bir veritabanı tarafından desteklenen genel bir şablon olarak kullanmaya çalışıyorum. Sorun, her şablon derlemesi için yeni bir dinamik düzeneğin oluşturulduğu ve yüklendiği sorunudur. Geçerli uygulama alanından bir derlemenin kaldırılması ve templasyon sistemi için ayrı bir uygulama alanı kullanmanın (anonim türlerin kullanımı) hiçbir yolu olmadığından, bu derlemeler uygulama alanı yok olana kadar biriktirmeye devam edecektir. Şablonlar düzenli olarak değişecek ve bu nedenle daha fazla derleme ile sonuçlanacaktır.Çok fazla sayıda dinamik montaj

Bu dinamik meclisler (potansiyel olarak binlerce) appdomain performansını etkileyecek mi? Veya dönüşümlü olarak bunu yapmanın daha iyi bir yolu var mı?

cevap

1

Genel olarak AppDomain'e yüklenen çok sayıda küçük gruba sahip olmak, çok fazla endişelenecek bir şey olmamalıdır. Bu konuda herkesin yapabileceği tek genel açıklama, uygulamanın gerçek senaryolarını ilgili senaryolarda ölçmek ve sonra önemli olup olmadığını görmek.

ASP.NET'in belirli olaylardan sonra AppDomain'i geri dönüştürecek bazı otomatik uygulama yaşam döngüsü yönetimi vardır. Örneğin, uygulamada çok fazla tekrarlama varsa, ASP.NET otomatik olarak uygulamayı yeniden başlatır. Bu, önceden yüklenmiş tüm montajların temizleneceği ve sıfırdan başladığınız anlamına gelir.

fazla bilgi için MSDN bakınız: http://msdn.microsoft.com/en-us/library/s10awwz0.aspx

numRecompilesBeforeAppRestart

Opsiyonel Int32 özniteliği.

Uygulama yeniden başlatılmadan önce oluşabilecek kaynakların dinamik derlemelerinin sayısını belirtir. Bu özellik global ve uygulama düzeyinde desteklenir, ancak dizin düzeyinde desteklenmez.

Not

ASP.NET numRecompilesBeforeAppRestart, tesisi bir montaj geçersiz her seferinde artırır ve silinecek başarısız olur.

varsayılan yerde en azından bazı emniyet cihazlarının vardır bilmek 15.

+0

İyi olduğunu. Şimdiye kadar çalışıyor gibi görünüyor. – Danielg

İlgili konular