Optimalizálása alkalmazási környezet beállítás
Amellett, hogy a kódot, minden beérkező kéréseket és a kimenő válaszokat kezelik ASP.NET komponenseket. Néhány mechanizmusai egy ASP.NET, mint például a ViewState voltak biztosított a fejlesztési igények, de hatással lehet az általános teljesítményt a kérelmet. Ha finomhangolás a ASP.NET alkalmazás ajánlott módosítani az alapértelmezett viselkedés néhány ilyen mechanizmusok, bár néha ezek a változások módosítását igénylik alkalmazás kódját.
Kikapcsolja a nyomkövetés és a hibakeresés mechanizmusok ASP.NET
ASP.NET nyomkövetés nyomkövetés mechanizmus lehetővé teszi a fejlesztők számára, diagnosztikai információk egy adott oldalon, mint például a végrehajtási időt, a maga módján, a munkamenet állapotának és egy listát a HTTP-fejléc.
Míg felkutatása mechanizmus lehetővé teszi, így felbecsülhetetlen értékű információt a fejlesztés során és hibakeresés ASP.NET alkalmazás, ez negatív hatással van a teljesítményét az alkalmazás adatokat gyűjteni minden kérés adatait. Azaz, ha a nyomkövetési támogatás került bele a fejlesztési szakaszban, akkor tiltsa le a telepítés előtt az alkalmazás a termelési környezetben, ami elég egyszerű megváltoztatni a nyoma beállítást a web.config fájlban:
Alapértelmezésben hacsak kifejezetten másként, a nyomkövetés le van tiltva (enabled = „false”), tehát, hogy tiltsa felkutatására is egyszerűen eltávolítja nyomokban opciót a web.config fájlt.
Amikor létrehoz egy új ASP.NET alapú webes alkalmazás a web.config fájl automatikusan hozzáadódik a konfigurációs szakaszban system.web -> összeállítás a hibakeresési tulajdonság, meg a valóságnak:
A probléma ezzel az opcióval, hogy a fejlesztők gyakran elfelejti beállítani, hogy hamis, ha telepített meglévő webszerver vagy külön szabadság értelmében igaz, hogy képes legyen minél több információt esetén kivételek. Ez ahhoz vezethet, hogy számos probléma társul a teljesítmény:
Szkriptek használatával letöltött WebResources.axd kezelő. például, ha használják az oldalak érvényesítés nem cache a böngésző. A hibakeresési jelző hamis, akkor a válasz a felvezető lesz ellátni fejezetek, teret hagyva az caching, amely lehetővé teszi a böngészők tárolja az eredményeket a cache későbbi használatra.
A hibakeresési paraméter értéke false, time-out nincs beállítva a lekérdezés feldolgozása. Bár nagyon hasznos hibakeresés, ilyen viselkedés nem kívánatos ipari környezetben, mivel az ilyen kéréseket vezethet, hogy a szerver nem képes a szolgáltatás egyéb kérések, vagy akár okozhatja a túlzott terhelés a processzort, nagyobb memória-felhasználás és egyéb problémákat okozhat a források elosztását.
Telepítési hibakeresési flag értéke false lehetővé teszi ASP.NET runtime meghatározza időtúllépést lekérdezés feldolgozása összhangban httpRuntimeExecutionTimeout beállítások (alapértelmezett érték 110 másodperc).
Ha a debug értéke true, JIT-fordító nem optimalizálja a kódot. Ez az optimalizálás az egyik legfontosabb előnye, hogy a .NET környezet és biztosítja a jelentős növekedés az ASP.NET alkalmazások teljesítményét anélkül, hogy a kód megváltoztatása. Beállítás hibakeresési hamis lehetővé JIT-fordítót, hogy ezt a munkát, és az alkalmazás gyorsabban és hatékonyabban.
Módosítsa ezt a beállítást nagyon egyszerű: csak teljesen eltávolítani a debug attribútumot a konfigurációs fájlban, vagy állítsd be false:
Ha félsz, hogy akkor felejtsük el, hogy változtatni ezt a beállítást, ha az alkalmazást telepítik a meglévő szerver, akkor lehet, hogy az összes ASP.NET alkalmazások figyelmen kívül hagyja a debug a szerveren, a következő kódot a machine.config fájlt a kiszolgálón:
Letiltása ViewState mechanizmus
A mechanizmus tárolására nézet állami ViewState használják ASP.NET Web Forms alkalmazások állapotának mentése az oldal elrendezésének megjelenített HTML (ASP.NET MVC alkalmazások nem használják ezt a mechanizmust). ViewState mechanizmus lehetővé teszi ASP.NET állapotának mentése az oldal, hogy küldje vissza a felhasználónak. Az adatok mentése HTML formátumban, titkosított (alapértelmezett titkosítás ki van kapcsolva), kódolt Base64 húr és tárolni egy rejtett területen. Amikor a felhasználó elküldi az oldal Vissza mező tartalma dekódolva és alakítja vissza egy asszociatív tömbben. Sok szerver vezérlők használatát ViewState mechanizmus tárolására saját információkat, például az értékek azok tulajdonságait.
Volumenének növelése oldalak használata ViewState mechanizmus általában felderítetlen marad hozzáférő ügyfelek számára a webszerver a helyi hálózaton. Ez annak a ténynek köszönhető, hogy a helyi hálózatok tipikusan nagy sebességgel átviteli és szállítási nagyon nagy oldalak ilyen hálózatok milliszekundum (optimálisan kialakítani gigabites LAN átviteli elérheti
40-100 Mbyte / sec, attól függően, hogy az alkalmazott hardver). Azonban lassúbb globális hálózatok, mint például az internet, méretének növelése kifejezettebbé válik.
Ha egy alkalmazás használatához nem szükséges ezt a mechanizmust, akkor jobb, ha kikapcsolja. Disable ViewState mechanizmus lehet a web.config fájlban a teljes alkalmazás teljes:
Ha ez nem tiltható le a teljes alkalmazás, letilthatja a használatát ViewState mechanizmus egy külön oldalt, és annak minden ellenőrzés:
Lehetőség van arra is, hogy tiltsa ViewState egyedi ellenőrzések:
Korábbi verzióit ASP.NET 4 támogatás letiltása ViewState mechanizmus oldalon lehetetlenné tette bevonása az egyedi ellenőrzések az oldalon. Kezdve a változata ASP.NET 4 ezzel a lehetőséggel bővült. Ez úgy érhető el az ingatlan ViewStateMode. Például, a következő kód kikapcsolja a mechanizmus ViewState egy egész oldalt, kivéve a ListView ellenőrzés:
Telepítése EnableViewState attribútumot false magasabb prioritású, mint ViewStateMode tulajdonítja. Azaz, ha a használni kívánt ViewStateMode attribútumok legyenek beállítva EnableViewState attribútum értéke igaz, vagy csak törölni (alapértelmezés szerint be van állítva, hogy igaz).
Készpénzfelvétel a szerver oldalon
ASP.NET oldalak dinamikus, tartalmi szempontból azonban gyakran egy dinamikus oldal tartalma nem változik az idővel. Például, az oldal vehet a termékazonosító és visszaút HTML jelölőnyelv a leírását. Az oldal maga dinamikus, mert visszatérhet egy másik leírást a különböző termékek, de a leírás egy adott termék nem változik, legalábbis addig, amíg nem változik az adatbázist.
Folytatva a példát, a termék kivégzésének megakadályozására ismételt kérések az adatbázis minden egyes alkalommal, amikor egy felhasználó kéri a termék leírása, akkor mentse a leírást a helyi cache és gyorsabb a felépülés, de még mindig kell generálni HTML jelölőnyelv válaszul minden kérés . Ehelyett a forrás adat cache, ASP.NET nyújt egy másik lehetőség - ASP.NET kimeneti gyorsítótár mechanizmus. ahol ő mentette meg a HTML-jelölést.
Mechanizmuson keresztül meg lehet menteni a HTML-forrás, ami automatikusan vissza válaszul későbbi kérések, megkerülve azt a lépést, programkódot végrehajtó generáló az oldalt. O cache ASP.NET támogatja az alkalmazás, amely a Web Forms, ahol oldalak vannak tárolva a gyorsítótárat és alkalmazások alapján ASP.NET MVC, ahol vezérlő műveletek eredményei vannak tárolva.
Például az alábbi kód a kimeneti cache menteni a bemutatót, vissza ASP.NET MVC vezérlő használata legfeljebb 30 másodperc
Ha az index működését a fenti példában vesz egy paramétere a termékazonosító és visszaad egy ábrázolása információt egy adott termék, akkor szükségünk lenne a cache több verzió kiadási különböző azonosítókkal. Ezért a kiadási cache támogatja nem csak a képesség, hogy mentse egy változata a kiadási, hanem a különböző változatai által generált adatok ugyanazon művelet által okozott különböző paramétereket.
Amellett, hogy a paraméterek kiadási cache mechanizmus is figyelembe veszi a kérés HTTP-kérés fejlécet, mint például az Accept-Encoding és az Accept-Language. Például, ha a vezérlő módszer visszatérhet a különböző nyelvű tartalmak, attól függően, hogy a HTTP-fejléc Accept-Language, akkor rekordot ezt a fejlécet és tárolja a cache különböző változatai kiadási különböző nyelveken.
Ha ugyanazokat a beállításokat alkalmazzák tördeljük különböző oldalakra vagy műveletek, akkor hozzon létre egy profilt cache és használja beállítása helyett inkább egy ismétlés, újra és újra. A profilokat cache-ben a web.config fájlt, lásd system.web -> cache-t. Például az alábbi kódot kijelenti profilja cache kell használni együtt a különböző oldalakon:
Most ezt a profilt lehet alkalmazni, hogy a művelet Index: