2012-10-25 18 views
10

Görüntülerin bir listesi olan bu MVC görünümüne sahibim, bu görüntüler bir denetleyiciden gelmesi için dinamiktir. Benim kanıtlamak için bir şeyler önbelleğe değilimGörüntüler sunulurken MVC denetleyicim neden yavaş?

[OutputCache(Duration = 0, NoStore = true, Location = OutputCacheLocation.None)] 
    public ActionResult RenderImage(int id) 
    { 
    return File(@"C:\Users\Pictures\myimage.png", "image/png"); 
    } 

: şeyler basitleştirmek için bu kontrolör yalnızca bu kodu vardır. ,

timings

Bazen (hepsi aynıdır) bazı görüntüler için ve her biri üzerinde hızlı durum farklı yenilemek:

Bence istekleri 8 farklı kimlikli görüntüleri tüm ve zamanlamaları korkunç içinde bir desen bulamıyor.

uygulama IIS'de barındırılan ve sunucu günlüklerinde timetaken o zaman kadar yiyor sunucu gösterir:

enter image description here

Has kimse bunun neden böyle bir ipucu mu? Resimleri tek tek isterim (sayfada değil), her zaman hızlıdır.

+1

Tipik bir sorun - buradaki her şeyi açıklamıyor - tarayıcı, görüntüleri almak için iki veya dört paralel bağlantı kullanıyor ancak ASP.NET oturum durumuna erişim özel bir kilit gerektirdiğinden, tümünü engelleyecek. Görüntüler için oturum durumuna erişmeniz gerekmiyorsa, bunu bildirmenin ve özel kilitlemeden kurtulmanın bir yolu vardır. – Codo

+0

Diskte G/Ç olabilir. C: \ Users \ Pictures \ myimage.png öğesinin içeriğini bir bayt [] içine yükleyerek, bunu bellekte saklayarak ve geri döndürerek, sorun olup olmadığını (tabii ki bir 'üretim' düzeltmesi değil) görmeyi deneyebilirsiniz. hata ayıklamaya yardımcı olabilir) – Alex

+0

Olası neden, kilitli bir yöntem olabilir. Çok iş parçacıklı hale getirmeye çalışın ve size yardımcı olup olmadığına bakın. –

cevap

3

bu benim durumumda çözümdür çıkıyor:

[SessionState(System.Web.SessionState.SessionStateBehavior.Disabled)] 

user1394965 cevap olarak bu önerdi .. ama onun cevabı gitmiş ?!

+0

Readonly de Engelli btw yerine yardımcı olacaktır – Flores