3

Когда я запускаю этот цикл в оболочке 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.
(Обратите внимание, что статистика времени ЦП не остается на нуле из-за ее поломки - она остается на нуле, потому что на самом деле она слишком мала. Если оставить программу работы достаточно долго, они будут увеличиваться.)

Что вызывает это несоответствие?

0