Perché un sito Web ASP.Net potrebbe caricarsi lentamente? [chiuso]

9

Aneddoticamente, ho visitato molti siti Web .aspx che richiedono una notevole quantità di tempo di caricamento per ogni pagina.

La mia esperienza è unica?

In caso contrario, perché un sito Web ASP.Net potrebbe caricarsi lentamente?

Modifica: ora è circa 7 anni dopo (29/12/2017). La buona notizia è che non vedo più questo problema, forse perché Google ha iniziato a penalizzare i siti che si caricano troppo lentamente. Ora utilizzo ASP.NET MVC con buoni risultati, attualmente in esecuzione su server virtuali privati Vultr (Azure era troppo lento quando l'abbiamo provato). Alcuni dei peggiori trasgressori che vedo ora sono i sistemi CMS come Wordpress e Drupal, probabilmente in esecuzione su hardware troppo lento o sottovalutato per la quantità di traffico che il sito ottiene. -HK1

    
posta HK1 02.03.2011 - 23:51
fonte

8 risposte

22

Cinque possibilità a cui posso pensare (a parte alcune tecniche avanzate di caching e simili):

risposta data 02.03.2011 - 23:59
fonte
8

Come apparentemente questa potrebbe essere una risposta degna.

Potrebbero esserci molti fattori in gioco. Il sito che stai utilizzando in questo momento è costruito su .NET, e in genere è molto veloce (meno i tempi di fermo / i periodi di manutenzione).

Gli sviluppatori di quei siti in cui vai potrebbero spingere tonnellate di dati per te, o connessioni lente, server sovraccaricati, ecc. ecc. ecc. Potrebbe anche essere la percezione in gioco. Inoltre, forse javascript folle in gioco e stai eseguendo IE? O flash?

    
risposta data 03.03.2011 - 00:01
fonte
4

Se non sai veramente cosa stai facendo, ASP.NET WebForms ti consente di creare un'applicazione web facendo cadere i controlli su un modulo, arrivando persino a nascondere la natura stateless di http. Funziona, ma questo tipo di sviluppo non produrrà mai codice efficiente, specialmente se il tuo livello di accesso ai dati coinvolge query generate selezionando tutto da un database sql express senza indici.

Ci sono molti siti web veloci su asp.net, sviluppati da persone che capiscono come funzionano davvero le applicazioni web. Questo include questo sito: utilizza ASP.NET MVC che fornisce molto più controllo sulla gestione delle singole richieste e non mostra l'estensione .aspx.

    
risposta data 03.03.2011 - 01:11
fonte
3

Solo speculazioni qui come ho notato la stessa cosa. Sospetto che i siti .asp tendano (noti la parola tend ) di essere ospitati autonomamente sui server di un'azienda, invece che ospitati presso o nei data center. Pertanto, vengono spesso eseguiti su hardware e connessioni non progettati per il traffico web ad alta velocità. Sospetto che anche i siti guidati dalla fusione fredda ne soffrano.

    
risposta data 03.03.2011 - 00:03
fonte
2

Quando un sito web viene caricato (evento application.start), ci vuole tempo per caricare tutto in memoria. A seconda delle impostazioni di IIS, dopo circa 20-30 minuti di inattività, scaricherà. Non ho trovato un modo decente per mantenere l'applicazione costantemente in esecuzione senza che alcuni servizi eseguissero un GET ogni 10+ minuti.

Un backend / datalayer mal progettato può far rallentare qualsiasi cosa (indipendentemente dalla velocità con cui il computer lo esegue). Il profilo ti aiuterà a identificare dove sono i problemi.

    
risposta data 03.03.2011 - 00:10
fonte
1

Lo stai sicuramente immaginando. :)

Molti fattori entrano in gioco con qualsiasi software. L'architettura, la ridondanza del flusso di codice, la qualità del codice, ecc. Troppi anche per iniziare l'elenco.

Vuoi provare che ASP è adatto per l'utilizzo a livello aziendale? Questo sito Web (e tutti i siti Web di SE) sono creati utilizzando ASP.Net, in particolare MVC.

Quando è stata l'ultima volta che questo sito è stato lento? Sono qui da più di un anno e mai una volta ho notato cose che scoppiettano nonostante la sua massiccia base di utenti.

    
risposta data 03.03.2011 - 00:00
fonte
0

Il viewstate può davvero rallentare i postback. Se hai gravi elenchi a discesa su una pagina, non dovresti utilizzare lo stato di visualizzazione su di essi.

Il viewstate ti consente di fingere di lavorare su un'app winforms di stato. A volte puoi metterti nei guai.

    
risposta data 08.09.2012 - 19:49
fonte
0

È probabile che tutto quanto sopra sia vero. Il più grande singolo fattore che influenza le prestazioni nel sito ASP.NET su cui ho lavorato è che tutto ciò che riguardava era vecchio. La versione di .NET framework, i server, l'infrastruttura del database e il codice stesso stavano invecchiando male.

Sospetto che molti siti ASP.NET tendano ad essere siti aziendali. Questi non hanno molto amore, dal momento che tendono a solo a lavorare . Le persone non li riscrivono fino a quando non sono costretti a farlo, il che è spesso molto lungo in fondo alla strada.

So che il sito con cui ho lavorato ASP.NET ha ottenuto un enorme aumento solo passando alla versione più recente del framework, che aveva un jITing molto più efficiente e impostazioni predefinite di cache sensate.

L'altra cosa che ho visto che molti siti ASP.NET non sanno come scalare correttamente. Non hanno un corretto bilanciamento del carico impostato perché progettare il loro sito per funzionare correttamente con i web garden non è comune o ben documentato nella comunità. Se non si progetta il proprio sito per i giardini Web dall'inizio, non è possibile utilizzare il meccanismo di ridimensionamento incorporato di IIS. Il bilanciamento del carico del software con NLB di Windows non è molto comune ed è complesso da gestire. (Questo richiama il fatto che ASP.NET tende ad essere un software aziendale e tende a essere gestito dalla società che gestisce il sito piuttosto che dai professionisti IT che sanno come configurare correttamente questa roba.)

Il bilanciamento del carico hardware con F5s è molto costoso, ma sembra essere il meccanismo più comune e semplice per ridimensionare i siti ASP.NET all'interno delle reti aziendali. Penso che tra il pubblico open source ci si aspetta che si crei il bilanciamento del carico fin dall'inizio utilizzando strumenti open source disponibili gratuitamente che si ridimensionano automaticamente in base all'utilizzo. Questo non è comune nel mondo ASP.NET da quello che ho visto.

    
risposta data 16.09.2013 - 21:31
fonte

Leggi altre domande sui tag