Oct 31, 2012 23:31
Странная штука powershell... Простой скрипт:
$start = get-date
for($i=1; $i -le 1000000; $i++){}
$end = get-date
($end-$start).TotalMilliseconds
# $i.GetType()
Remove-Variable i
$start = get-date
for([int]$i=1; $i -le 1000000; $i++){}
$end = get-date
($end-$start).TotalMilliseconds
# $i.GetType()
Remove-Variable i
$start = get-date
for([int64]$i=1; $i -le 1000000; $i++){}
$end = get-date
($end-$start).TotalMilliseconds
# $i.GetType()
Remove-Variable i
$start = get-date
for([float]$i=1; $i -le 1000000; $i++){}
$end = get-date
($end-$start).TotalMilliseconds
# $i.GetType()
Remove-Variable i
$start = get-date
for([double]$i=1; $i -le 1000000; $i++){}
$end = get-date
($end-$start).TotalMilliseconds
# $i.GetType()
Remove-Variable i
$start = get-date
for($i=1; $i -le 1000000; $i++){}
$end = get-date
($end-$start).TotalMilliseconds
# $i.GetType()
Remove-Variable i
Непростые результаты (у меня на компе дома, ему уже 4 года и на современных могут быть уже другие результаты):
1845,1056
3160,1808
5029,2877
5521,3158
4504,2576
1804,1032
Повтор:
1807,1033
3178,1818
5050,2889
5489,314
4493,257
1816,1039
То, что резульаты разные по типам - не вопрос. Вопрос: какого типа $i в первом и последнем запуске (ответ: Int32, аналогично второму запуску)? И почему результат [int]$i так отличается от первого и последнего?