Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di Rickycast
    Registrato dal
    Apr 2007
    residenza
    CHIERI (TO)
    Messaggi
    240

    [VB.NET] La Soluzione è diventata lenta in avvio

    Dopo molte versioni della mia "Solution.sln" posso dire che adesso riesco ad ottenere quasi tutto quello che volevo, però è diventata molto lenta in avvio (utilizzo Visual Studio 2017 - linguaggio VB.Net). È vero che pesa quasi 100MB ma non c'è niente di superfluo in quello che ottengo quando la eseguo: la Solution contiene un solo Progetto con molte Form e tanto codice. Sicuramente ci saranno mille cose da correggere e migliorare però i miei limiti sono molti, ....
    Ho provato ad eseguire una vecchia versione (quasi la prima) ma anche questa è lenta in avvio più di quanto non fosse quando l'ho scritta e questo non me lo spiego. I tentativi li ho fatti anche su PC diversi e ovviamente ci sono differenze causate dall'hardware ma la lentezza rimane evidente. Ho anche provato a cancellare le Form lasciando solo quella di avvio ridotta al minimo ma non cambia molto: ci vogliono almeno 4/5 secondi dal Click. Dovrei (vorrei) poter ricominciare tutto da zero su una nuova Solution vergine ma qui entra in ballo il fatto che non sono più riuscito a ripercorrere la strada che mi ha portato a crearla (Visual Studio 2015). O meglio, è proprio necessaria una Solution o basta un Progetto Windows Forms? Che confusione in testa! e non ho trovato niente di semplice che possa guidarmi nel marasma di Visual Studio come, ad esmpio, che differenza c'è fra un Progetto e una Solution. Ogni suggerimento è ben accetto.

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    23,831
    Non è chiaro se parlando di "Soluzione lenta in avvio" ti stai riferimento al fatto che è lento il caricamento in Visual Studio oppure se l'applicazione (eseguibile) che si avvia lentamente.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Altri link...

  3. #3
    Utente di HTML.it L'avatar di Rickycast
    Registrato dal
    Apr 2007
    residenza
    CHIERI (TO)
    Messaggi
    240
    Quote Originariamente inviata da alka Visualizza il messaggio
    Non è chiaro se parlando di "Soluzione lenta in avvio" ti stai riferimento al fatto che è lento il caricamento in Visual Studio oppure se l'applicazione (eseguibile) che si avvia lentamente.
    Credo di avere intuito che la lentezza in avvio di cui parlo non dipende da Visual Studio, ma dal fatto che probabilmente ho chiesto al sistema di aprire(o di riferirsi) in avvio al DB in cui sono contenute tutte le Tabelle, che sono veramente molte e pesanti. Ovviamente andando avanti con il lavoro ne ho anche aggiunte e quindi, ...
    Me ne sono accorto perché se chiedo l'Avvio mentre il DB è aperto, mi da un errore ma contestualmente apre subito la Form iniziale. È possibile che sia così?
    In questo caso, visto che non credo di avere bisogno che il DB sia linkato, è evidente che ho fatto qualcosa di sbagliato: dove dovrei guardare per verificare se è così e poi eliminare questo link?

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    23,831
    Quote Originariamente inviata da Rickycast
    Credo di avere intuito che la lentezza in avvio di cui parlo non dipende da Visual Studio
    Non può dipendere in alcun modo da Visual Studio, poiché la gestione del progetto all'interno dell'IDE è del tutto slegata dalle tempistiche di esecuzione del programma una volta lanciato, escludendo quando ci si aggancia allo stesso per questioni di debugging.

    Quote Originariamente inviata da Rickycast
    ma dal fatto che probabilmente ho chiesto al sistema di aprire(o di riferirsi) in avvio al DB in cui sono contenute tutte le Tabelle, che sono veramente molte e pesanti. Ovviamente andando avanti con il lavoro ne ho anche aggiunte e quindi, ...
    Se all'avvio del tuo programma hai inserito un caricamento in memoria di dati e hai via via aggiunto nuovi dati da caricare, è normale che il tempo necessario ad effettuare questo caricamento rallenti l'avvio del programma.

    Quote Originariamente inviata da Rickycast
    Me ne sono accorto perché se chiedo l'Avvio mentre il DB è aperto, mi da un errore ma contestualmente apre subito la Form iniziale. È possibile che sia così?
    Probabilmente ti viene restituito un errore perché il caricamento fallisce, magari perché stai aprendo il file in modalità esclusiva e avendolo già aperto altrove, questo processo fallisce ma non impedisce la visualizzazione della finestra principale del programma.

    Mi aspetto quindi che, al netto del tempo di avvio ridotto, tu abbia comunque delle ripercussioni sul funzionamento del programma in seguito, altrimenti significa che all'avvio stai caricando inutilmente dei dati che non ti servono.

    Ovviamente, senza vedere codice né approfondire la problematica, difficile dire di più.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Altri link...

  5. #5
    Utente di HTML.it L'avatar di Rickycast
    Registrato dal
    Apr 2007
    residenza
    CHIERI (TO)
    Messaggi
    240
    Quote Originariamente inviata da alka Visualizza il messaggio

    Ovviamente, senza vedere codice né approfondire la problematica, difficile dire di più.
    Ovvio, ma non saprei proprio che codice mostrare: è talmente tanto,...
    Provo a rispondee a djciko per cominciare.

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    23,831
    Quote Originariamente inviata da Rickycast Visualizza il messaggio
    Ovvio, ma non saprei proprio che codice mostrare: è talmente tanto,...
    Ovviamente quello interessato dal problema, ad esempio quello che viene eseguito all'avvio del programma oppure quello nel punto in cui viene sollevato l'errore quando i dati sono già aperti.

    In effetti, non ha neanche molto senso in questo caso parlare di codice: se il programma l'hai scritto tu, deciderai tu di quali dati hai bisogno fin dall'inizio dell'esecuzione del programma, o quali puoi caricare in un secondo momento, magari perché si riferiscono a funzionalità che potrebbero non essere nemmeno richiamate o di uso meno comune.

    Il motivo per cui carichi quei dati, la quantità di dati in sé e tutto il resto sono scelte tue.

    Quello che denunci non è un vero problema, ma un normale effetto: se ritieni che l'avvio sia troppo lento, intervieni come detto sulla quantità di dati che carichi all'avvio.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Altri link...

  7. #7
    Utente di HTML.it L'avatar di Rickycast
    Registrato dal
    Apr 2007
    residenza
    CHIERI (TO)
    Messaggi
    240
    È lento l'avvio dell'eseguibile, molto lento. Anche quando lancio "Avvia" (Debug) da Visual Studio, il sistema prima esegue il Debug (ed è normale che si prenda del tempo), poi la riga delle "Visualizzazioni in background" passa da Azzurra ad Arancio e solo 4/5 secondi dopo compare la Form di avvio. Quando ho cominciato a lavorare su questo Progetto, l'apertura della Form di avvio era quasi istantanea.
    Comunque non mi ricordo se fin dall'inizio Visual Studio mi aprive una .sln o un Progetto. Adesso apre comunque una .sln e qui nasce anche la mia confusione perché, come ho detto, io non ho ancora trovato un testo che mi spieghi le differenza fra Solution e Proggetto e come si gestiscono.
    Questo perchè ipotizzando di avere "sporcato" il lavoro, vorrei poterlo riscrivere da zero su una base nuova e adatta allo scopo. Per intenderci, utilizzo molte tabelle di Access 2007 che istanzio all'occorrenza e di conseguenza molte Form con i dati elaborati.

  8. #8
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,809
    la solution è un contenitore di progetti di vario tipo, tutto qui.

    in una solution puoi avere un progetto Classi Library, un WebSite ed un WebService.

    ci sara' un solo file .SLN e tre .VBPROJ (oppure .CSPROJ se il codice è C#)

  9. #9
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,809
    Se fai tasto destro sulla solution, puoi aggiungere un nuovo progetto oppure un progetto esistente.

    cioe' o lo crei da zero oppure, se hai una libreria che usi sempre ad esempio, puoi includerla nella solution.


  10. #10
    Utente di HTML.it L'avatar di Rickycast
    Registrato dal
    Apr 2007
    residenza
    CHIERI (TO)
    Messaggi
    240
    Grazie, era banale ma non scontato.
    Quindi io opero comunque e solo su un Progetto (uno alla volta se ce ne sono più di uno)?
    E ancora quindi, eseguire "Ricompila soluzione" ricompila TUTTI i Progetti in essa compresi, mentre "Ricompila Progetto" ricompila solo quel progetto?

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 © 2021 vBulletin Solutions, Inc. All rights reserved.