Misurazione tempi di esecuzione

Rimane comunque un fatto sorprendente. Ho scritto in ambiente Visual Studio 2019 (in Vb .Net) le stesse istruzioni. Ho dovuto aumentare il numero di cicli a un miliardo per avere dei tempi misurabili, ma la stessa cosa ho fatto su Arduino.

        Dim k As Integer
        Dim watch As New System.Diagnostics.Stopwatch()

        watch.Start()
        For i As Integer = 0 To 1000000000
            k += 1
        Next
        watch.Stop()

        MsgBox(“Tempo impiegato: “ + watch.Elapsed.TotalMilliseconds.ToString)

La cosa che sorprende che è sulla mia macchina impiega circa 2.000 millisecondi per iterare un miliardo di volte, mentre su Arduino lo fa istantaneamente. Chiaramente è un fattore determinato dal compilatore, però che strano che non ci sia più uniformità su questo aspetti.