Esempio:
# Step 1
$start = get-date
for($i=1; $i -le 1000000; $i++){}
$end = get-date
($end-$start).TotalMilliseconds
Remove-Variable i
# Step 2
$start = get-date
for([int]$i=1; $i -le 1000000; $i++){}
$end = get-date
($end-$start).TotalMilliseconds
Remove-Variable i
# Step 3
$start = get-date
for([int64]$i=1; $i -le 1000000; $i++){}
$end = get-date
($end-$start).TotalMilliseconds
Remove-Variable i
# Step 4
$start = get-date
for([float]$i=1; $i -le 1000000; $i++){}
$end = get-date
($end-$start).TotalMilliseconds
Remove-Variable i
# Step 5
$start = get-date
for([double]$i=1; $i -le 1000000; $i++){}
$end = get-date
($end-$start).TotalMilliseconds
Remove-Variable i
# Step 6
$start = get-date
for($i=1; $i -le 1000000; $i++){}
$end = get-date
($end-$start).TotalMilliseconds
Remove-Variable i
Risultati:
1845,1056
3160,1808
5029,2877
5521,3158
4504,2576
1804,1032
non ci sono dubbi sulle differenze tra i passaggi 2-6. Ma le differenze tra 1 e 2 e 6 sono inspiegabili: $ i in questi casi ha tipo "System.Int32".
Ho visto più o meno gli stessi risultati di te. –
Non c'è nulla di intrinsecamente sbagliato nel modo in cui si misura il tempo di esecuzione, ma per i test futuri si potrebbe voler controllare questo al prompt: get-help Measure-Command – EBGreen
Ciò che è interessante è che si faccia '$ i = new -object -type Int64' o '$ i = new-object -type Int32' e quindi' for ($ i = 1; $ i -le 1000000; $ i ++) {} ', ottieni risultati simili su tutta la linea (per iNT). Qualcosa in quell'operatore di cast forse ... – zdan