Когда я запускаю этот цикл в оболочке MSY2 Bash
function test() {
bcdedit | grep hypervisorlaunchtype
printf "Press ENTER to begin..." 1>&2
read
# warm-up
for ((i=0; i<"$1"; i++)); do $(:); done
# actual iterations
local tstart="$(date "+%s%3N")"
iterations=0
local i
for ((i=2; i<"$1"; i++)); do $(:); done
local tend="$(date "+%s%3N")" # 2 extra spawns here
printf "%s ms/spawn" $((("$tend" - "$tstart") / "$i")) 1>&2
read
}
test 300
Я получаю около 23 мс / спавн, если hypervisorlaunchtype
off
, но около 4 мс / спавн, если он auto
.
Вот GIF-файлы, сравнивающие два с одинаковыми итерациями: Hyper-V off против Hyper-V auto.
(Обратите внимание, что статистика времени ЦП не остается на нуле из-за ее поломки - она остается на нуле, потому что на самом деле она слишком мала. Если оставить программу работы достаточно долго, они будут увеличиваться.)
Что вызывает это несоответствие?