+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 7 su 7

Discussione: monitorare i tempi di esecuzione di varie routine

  1. #1
    SebastianoFloridia non è in linea Scolaretto
    Post
    139

    monitorare i tempi di esecuzione di varie routine

    Salve a tutti,
    nella mia applicazione ci sono delle routine e sequenze di comandi molto lenti, (appare spesso la clessidra, anche se da programmazione non l'ho invocata).
    Oltretutto lo stesso software, in alcuni pc è velocissimo, in altre compreso in notebook su cui sviluppo è lentissimo.
    Un ciclo di lettura di 300 item di una collection può arrivare a 20-30 sec (dovrebbe impiegarne 1/4 di sec).

    Vorrei capire dove sta il problema.
    Esiste un modo per poter monitorare e verificare i tempi di esecuzione di una routine (da quando entro a quando esco).
    Mi serve per capire dove è il collo di bottiglia.

    Grazie
    Sebastiano Floridia

  2. #2
    Sgrubak non è in linea Scolaretto
    Luogo
    Torrazza Piemonte
    Post
    320
    Quote Originariamente inviato da SebastianoFloridia Visualizza il messaggio
    Esiste un modo per poter monitorare e verificare i tempi di esecuzione di una routine (da quando entro a quando esco).
    Ciao Sebastiano,

    credo che la classe StopWatch faccia al caso tuo.

  3. #3
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,385
    Blogs
    5
    In maniera più "professionale" esistono plugin (integrati) per visual studio per monitorare anche le performance. Adesso non mi vengono i nomi ma puoi fare qualche ricerca.
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  4. #4
    SebastianoFloridia non è in linea Scolaretto
    Post
    139
    Lo scopo è capire quale sia il motivo:

    In alcune installazioni va a velocità della luce, in altre una semplice chiusura, tra un msgbox e l'altro possono passare 15 sec.
    Appara una bella clessidra.


    codice:
    DialogResult dialogResult = MessageBox.Show("Sei Sicuro di Volere Uscire?", "Info", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
                if (dialogResult == DialogResult.Yes)
                {
    
                    DialogResult dialogResult2 = MessageBox.Show("Vuoi Salvare il progetto prima di uscire?", "Info", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
                    if (dialogResult2 == DialogResult.Yes)
                    {
                        ToolbarIDE.Salva();
                    }
                    GestioneXML.ScriviXMLchiusura();
                    int rrr = Application.OpenForms.Count;
    
                    //for (int i = 0; i < rrr; i++)
                    //{
                        //if (Application.OpenForms[i].Name == "FrmAvvio")
                        //{
                            Application.OpenForms[0].Close();
                        //} 
                            
                    //}
                    //Application.Exit();
                    // e.Cancel = false;
    
                }
                else if (dialogResult == DialogResult.No)
                {
                    e.Cancel = true;
    
                }
    Non ho capito proprio cosa possa essere.
    IL software è sotto git sincronizzato.
    Su un fisso è velocissimo, nel portatile ogni operazione è lentissimi.
    Cosa potrebbe essere?
    Saluti
    Sebastiano Floridia
    Ultima modifica di AntonioG; 23-10-2018 08:10 

  5. #5
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,385
    Blogs
    5
    Con tempi così diversi io sospetterei dell'antivirus/antimalware o di un problema del pc. Controlla lo stato della cpu da task manager e vedi anche se ci sono processi che impegnano i dischi.

    P.S. il codice nel forum inseriscilo tra tag code
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  6. #6
    SebastianoFloridia non è in linea Scolaretto
    Post
    139
    Ciao Ragazzi, studiando il codice, per esempio un tratto di codice che impiega, secondo me è questo:

    codice:
    for (int k = 0; k < Globale.CombinazionidC.Count; k++)
                {
                    ComboSourceCondizioni.Add("Z" + k, "COMB: " + Globale.CombinazionidC[k].Descrizione);
                }
    
                CombCdc.DataSource = new BindingSource(ComboSourceCondizioni, null);
                CombCdc.DisplayMember = "Value";
                CombCdc.ValueMember = "Key";

    E' una combo che carica max 50-60 item.

    per le ultime 3 righe impiega 3 sec

    codice:
    CombCdc.DataSource = new BindingSource(ComboSourceCondizioni, null);
                CombCdc.DisplayMember = "Value";
                CombCdc.ValueMember = "Key";
    Che ne pensate?
    Saluti
    Sebastiano Floridia
    Ultima modifica di AntonioG; 30-10-2018 10:24  Motivo: I tag CODE!

  7. #7
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,385
    Blogs
    5
    Sebastiano ... usa i tag CODE per il codice, non il grassetto ... Quest'ultima volta correggo io ...
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi