Programmering

Beste fremgangsmåter for å forbedre applikasjonsytelsen i ASP.Net

Det er mange faktorer som påvirker applikasjonsytelsen til webapplikasjoner. Essensen for å forbedre applikasjonsytelsen er å sikre at du bygger applikasjoner som bruker minst mulig minne og krever minst mulig behandling for å produsere ønsket utdata.

For å oppnå dette må du følge de anbefalte retningslinjene og teknikkene som er medvirkende til å forbedre, optimalisere og øke ytelsen til webapplikasjonen. I dette innlegget vil jeg diskutere de viktigste anbefalingene du bør følge for å forbedre applikasjonsytelsen og responsen til webapplikasjoner bygget med ASP.Net.

Reduserer sidetiden

For å redusere sidetidstiden på websidene dine, bør du gjøre skriptene og CSS-filene mindre og unngå for store bilder, overflødige koder og nestede tabeller. Unngå å bruke serverkontroller (med mindre det er en spesifikk grunn til å bruke dem) for å minimere størrelsen på websidene dine.

Du bør også unngå unødvendige rundturer til webserveren for å legge til rette for raskere sideinnlasting. Du kan dra nytte av Page.IsPostback-egenskapen for å unngå unødvendig serverbehandling på en rundtur, og dermed redusere nettverkstrafikken. En annen teknikk du kan følge er forhåndskompilering - du kan forhåndskompilere websidene i applikasjonen din for å redusere arbeidsstørrelsen. Du kan også sette AutoEventWireup-attributtet til "false" i filen machine.config slik at kjøretiden ikke trenger å søke etter hver av hendelsesbehandlerne på en webside.

  

    

      

    

  

Når du setter denne egenskapen til false, vil ikke sidehendelsene automatisk kobles til, og eliminerer dermed muligheten for at den samme hendelsen blir ringt to ganger når siden er i utførelse.

Du bør samle skript og css som brukes av applikasjonen din så mye som mulig. Benytt deg av asynkrone anrop fra websiden til serversiden når det er mulig - dette vil hjelpe websiden din til å være responsiv.

Statlig ledelse

Du bør unngå å bruke ViewState for å legge til rette for raskere sideinnlasting. Husk at hver byte som legges til på en webside ved å aktivere ViewState, vil medføre to byte nettverkstrafikk - en byte i hver retning, dvs. fra serveren til klienten og den andre fra klienten til serveren. Du bør også fjerne skjemaet runat = "server" fra websiden din hvis du ikke trenger å bruke ViewState. Dette vil spare deg for rundt 20 byte av sidestørrelsen.

Caching er en annen tilstandsstyringsteknikk tilgjengelig for deg - bruk den med omhu for å lagre relativt foreldede data i minnet. Du kan cache websidene eller delen av websidene dine hvis nødvendig. Databuffering kan brukes til å øke applikasjonsytelsen, ettersom det er relativt raskere å lese data fra hurtigminnet enn å lese de samme dataene fra en fil eller database.

Du bør optimalisere koden din for å sikre at du bruker ressurser (minne og prosessor osv.) Med omhu - jeg skriver et eget innlegg om dette.

Ressursforvaltning

Riktig ressursadministrasjonsteknikk hvis fulgt, kan øke ytelsen til applikasjonen din i betydelig grad. Du bør skaffe ressurser (filhåndtak, databaseforbindelser osv.) Sent og avhende dem tidlig. Du bør skrive koden din på en slik måte at gjenstandene ikke markedsføres til høyere generasjoner - husk at søppeloppsamleren jobber mye oftere i de lavere generasjonene enn i de høyere. Du bør bruke Kast og avslutt på riktig måte for å rydde opp i de ustyrte ressursene du bruker i applikasjonen. Det er en god praksis å pakke den ressurskrevende koden i applikasjonen din i en brukerblokk. Dette vil sikre at ressursene blir kastet riktig når de ikke lenger er nødvendige. Merk at "bruk" -uttalelsen om kompilering degenererer til en "prøve - til slutt" -kombinasjon og kan bare brukes til de objektene som implementerer IDisposable-grensesnittet.

Du bør også benytte deg av de anbefalte datatilgangsstrategiene og sørge for at applikasjonen ikke holder på databasetilkoblingene i lang tid for å muliggjøre bedre sammenkobling av tilkoblinger. Du bør skrive deg kode på en slik måte at den bruker minimalt antall databaseforbindelser. Hvis søknaden din holder på databasetilkoblingene, er det en sjanse for at databasetilkoblingsbassenget kan gå tom for tilgjengelige tilkoblinger, og dermed redusere ytelsen hvis behovet for tilkoblinger overstiger en viss grense. Du kan dra nytte av lagrede prosedyrer i de fleste tilfeller for å redusere behandlingsomkostningene på databaseserveren for ofte brukte spørsmål - dette vil bidra til å forbedre ytelsen til datatilgang i betydelig grad.