Oppure

Loading
Questo topic e' stato chiuso dal moderatore.
12/11/11 18:24
Aangelus
Salve ho eseguito un controllo su due versioni di lettura file txt cronometrandone la velocità dell'algoritmo. Il risultato è stato diverso da quello che mi aspettavo, nel senso che hanno impiegato lo stesso tempo di realizzazione e mi domandavo se avessi sbagliato qualcosa ?
il timer è impostato a 1000

Private Sub Command1_Click()
Text1.Text = ""
starttime = Timer
Open "c:\tmp\" & nomefile For Input As #1
Text1.Text = Input(LOF(1), #1)
Close #1
Label1.Caption = Timer - starttime
end sub

Private Sub Command2_Click()
Text1.Text = ""
starttime2 = Timer
Open "c:\tmp\" & nomefile For Input As #1
Do While Not EOF(1)
Line Input #1, testomio
testocompletomio = testocompletomio + vbCrLf + testomio
Loop
Close #1
Text1.Text = testocompletomio
Label2.Caption = Timer - starttime2
End Sub
Mi sono posto questo quesito perché secondo me si dà poca attenzione alla velocità degli algoritmi in particolare modo a progetti più grandi dove la scelta di quello giusto determina la velocità di risposta, per esempio nell'elaborazione di molto testo

Salve a tutti

Ho eseguito una modifica che ha confermato quello che in un primo momento si era manifestato come una anomalia aggiungendo un ciclo di ripetizioni con for, il primo algoritmo ha impiegato circa 6 volte meno del secondo confermando che la scelta di quello giusto è importante ;)

Private Sub Command1_Click()
Text1.Text = ""
starttime = Timer
For i = 1 To 1000
contenuto = ""
nomefile = Dir$("c:\tmp\";)
Open "c:\tmp\" & nomefile For Input As #1
contenuto = Input(LOF(1), #1)
Close #1
Next i
Text1.Text = contenuto
Label1.Caption = Timer - starttime
End Sub

Private Sub Command2_Click()
Text1.Text = ""
starttime2 = Timer
For z = 1 To 1000
testocompletomio = ""
nomefile = Dir$("c:\tmp\";)
Open "c:\tmp\" & nomefile For Input As #1
Do While Not EOF(1)
Line Input #1, testomio
testocompletomio = testocompletomio + vbCrLf + testomio
Loop
Close #1
Next z
Text1.Text = testocompletomio
Label2.Caption = Timer - starttime2
End Sub

Spero che questo post possa essere motivo di discussioni costruttive
Salve a tutti
Ultima modifica effettuata da Aangelus 12/11/11 18:57
aaa
12/11/11 21:45
netarrow
Questo topic è in violazione di una o più norme del regolamento: pierotofy.it/pages/extras/forum/9/3839-regolamento/ .
    
Dopo averlo letto riapri un nuovo topic assicurandoti di aver rispettato le regole. Grazie per la tua pazienza.
aaa