Ho questa piccola sobroutine in basic
codice:
Private a$ = "Essere o non essere, questo è il problema"
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i% = 0, k% = 1000000
Dim StartTime, EndTime As DateTime
Dim Tempo As TimeSpan
Dim Secondi, MilliSecondi As Double
Dim rand As New Random(CInt(Date.Now.Ticks And Integer.MaxValue))
StartTime = Now
For i = 1 To k
Dim x% = rand.Next(1, Len(a) + 1)
Dim s$ = Left(a, x)
Next
EndTime = Now
Tempo = EndTime.Subtract(StartTime)
MilliSecondi = Tempo.Ticks / 10000
PrintLn(MilliSecondi, "Millesecondi (basic))")
End Sub
Lanciando la pagina e cliccando sul pulsante ottengo questi 5 risultati:
453
453
422
406
422
422
Adesso converto la procedura in c#
codice:
string a = "Essere o non essere, questo è il problema";
private void Button1_Click(object sender, System.EventArgs e)
{
System.Int32 i = 0, k = 1000000;
DateTime StartTime, EndTime;
TimeSpan Tempo;
System.Double MilliSecondi;
Random rand = new Random((Int32)(DateTime.Now.Ticks & Int32.MaxValue));
StartTime = DateTime.Now;
for( i = 1; i <= k; i++)
{
Int32 x = rand.Next(0, a.Length);
String s = a.Substring(0, x);
}
EndTime = DateTime.Now;
Tempo = EndTime.Subtract(StartTime);
MilliSecondi = Tempo.Ticks / 10000;
Response.Write(MilliSecondi);
}
ed ottengo:
515
515
546
500
500
500
Siccome mi aspetto di ottenere in c# valori inferiori a quelli ottenuti in basic, presumo che abbia tradotto male il codice :master:
Mi potreste aiutare per favore?