Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1

    Ottimizzazione codice ASP

    Ciao a tutti.
    Vorrei chiedere il vostro parere sulla corretta via per ottimizzare il codice ASP delle pagine di un sito che gestisco con altre persone.
    Si tratta di un sito dinamico, programmato in ASP e con DB MySQL.
    Il mio problema è che il sito è visitato discretamente (ci sono giorni in cui si arriva anche ad oltre 1000 utenti connessi contemporaneamente) e quindi il server non riesce a sopportare il carico di richieste andando in tilt.
    Ora, al di là del ridimensionamento del server che stiamo comunque prendendo in considerazione, vorrei ottimizzare il codice in modo da avere in ogni caso un indubbio vantaggio.
    Ho letto diversi post sul forum e mi sembra di capire che una cosa valida sarebbe quella di non utilizzare direttamente i recordset per la visualizzazione dei dati, ma di trasferire il loro contenuto in array tramite il metodo GetRows e poi chiudere l'oggetto in modo da rilasciare la risorsa.
    Poichè questa modifica implica un be lavoro di riprogrammazione (che siamo ovviamente intenzionati a fare), prima di procedere mi piacerebbe avere qualche conferma in merito e magari anche qualche altro suggerimento...

    Grazie mille.

  2. #2
    per l'ottimizzazione del codice ci son mille e mille accorgimenti da fare.
    se il server ti va in tilt con 1000 connessioni, tralasciando l'ampiezza di banda del server, controlla che tutte le connessioni che vai ad aprire effettivamente vengano chiuse nella pagina stessa e che vengano settate a nothing.
    in questo modo alleggerisci di moltissimo la memoria.

    per il resto beh... se devi aprire un rs sii sicuro di aprirlo una sola volta per pagina. sarebbe inutile aprirlo più di una volta.

    poi ci sono altri mille accorgimenti che la maggior parte degli sviluppatori danno per scontato perchè hanno sempre codato fin da subito nella maniera ottimale. tutto sta a vedere come è stato sviluppato il codice, se ci sono degli include oppure no, se si porta dietro 2mila variabili inutilmente, ecc ecc

    dirti così a freddo come codare nella maniera ottimale è difficilissimo.
    cmq buon lavoro.
    Matrix è ovunque, è intorno a noi, anche adesso nella stanza in cui siamo. È quello che vedi quando ti affacci alla finestra o quando accendi il televisore. L'avverti quando vai al lavoro, quando vai in chiesa, quando paghi le tasse. È il mondo che ti è stato messo dinanzi agli occhi, per nasconderti la verità.

  3. #3
    che tipo di dati leggi dal db?!

  4. #4
    Certo, mi rendo conto che la mia domanda è un pò troppo generica e quindi è praticamente impossiile dare una risposta netta su due piedi. Diciamo che, a parte la questione della chiusura delle conn al db (che è di più semplice ed immediata risoluzione qualora ci fosse questo problema), mi chiedevo più in particolare se l'utilizzo del metdo GetRows per evitare la presentazione dei dati utilizzando direttamente il recordset sia valida o meno ed in che percentuale possa aiutarmi a risolvere i problemi di pesantezza.

    Per quanto riguarda la questione dell'apertura di più rs, non ho di questi problemi, così come le variabili inutili abbiamo sempre cercato di evitarle.
    Utilizziamo degli include nelle pagine per raggruppare codice comune (non solo asp ma anche html).

    Infine il tipo di dati prelevati dal db va dalle info sugli utenti registrati, a dati di svariato tipo, sia numerico che testuale...

    Un'altra domanda: è meglio chiudere la conn ed i rs subito dopo averli utilizzati oppure chiuderli in fondo alla pagina è indifferente?

  5. #5
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Originariamente inviato da ZeroCool981
    controlla che tutte le connessioni che vai ad aprire effettivamente vengano chiuse nella pagina stessa e che vengano settate a nothing.
    in questo modo alleggerisci di moltissimo la memoria.
    Io non chiudo mai e non setto mai a nothing ne' connessioni ne' recordset... secondo me non serve a nulla. Al termine dell'esecuzione della pagina tutto quello che è stato allocato (che non sia sessione o applicazione) viene eliminato.

  6. #6
    Io non chiudo mai e non setto mai a nothing ne' connessioni ne' recordset... secondo me non serve a nulla. Al termine dell'esecuzione della pagina tutto quello che è stato allocato (che non sia sessione o applicazione) viene eliminato.
    Bene. Completamente controcorrente dal momento che leggendo in giro sembra che quella della chiusura degli oggetti conn ed rs sia l'indicazione più gettonata per l'ottimizzazione del codice ASP quando si parla di impiego delle risorse del server...

    A questo punto sono un pò disorientato!
    Qualche altro parere in merito?!?!

  7. #7
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    già... sono controcorrente... però ho fatto delle prove.
    Ho fatto una pagina che crea 10000 connessioni e recordset senza ne' chiuderli ne' settandoli a nothing. La pagina impiega quasi 3 secondi per essere eseguita, in questi 3 secondi la memoria aumenta per poi tornare al punto di partenza appena la pagina è stata eseguita.
    Il server lo ammazzi se usi tante variabili di sessione e di applicazione... tutto quello che viene creato in una pagina "muore" al termine dell'esecuzione della pagina stessa.

  8. #8
    Certo willybit, non è che non mi fido della tua affermazione. In effetti questa è una cosa che più volte mi sono detto e che ho pensato fosse vera. Il tuo test sembra confermarla...

    Per quanto riguarda altre possibili ottimizzazioni, che mi dici dell'utilizzo del GetRows per evitare l'utilizzo diretto dei recordset per la visualizzazione dei dati prelevati dal db?
    E poi il discorso di concentrare il codice ASP nel numero mino possibile di blocchi in modo da ridurre i tag <% e %> all'interno della pagina?
    Rappresentano stili di programmazione validi o non incidono granchè sull'occupazione di risorse del server?

    Grazie mille.

  9. #9
    Originariamente inviato da willybit
    già... sono controcorrente... però ho fatto delle prove.
    Ho fatto una pagina che crea 10000 connessioni e recordset senza ne' chiuderli ne' settandoli a nothing. La pagina impiega quasi 3 secondi per essere eseguita, in questi 3 secondi la memoria aumenta per poi tornare al punto di partenza appena la pagina è stata eseguita.
    hai controllato la memoria del server?

  10. #10
    Originariamente inviato da willybit
    già... sono controcorrente... però ho fatto delle prove.
    Ho fatto una pagina che crea 10000 connessioni e recordset senza ne' chiuderli ne' settandoli a nothing. La pagina impiega quasi 3 secondi per essere eseguita, in questi 3 secondi la memoria aumenta per poi tornare al punto di partenza appena la pagina è stata eseguita.
    Il server lo ammazzi se usi tante variabili di sessione e di applicazione... tutto quello che viene creato in una pagina "muore" al termine dell'esecuzione della pagina stessa.
    Permettimi un mega LOL

    [OT]
    costa mi invii in pvt il link del tuo sito?
    [/OT]

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.