Есть ли возможность измерить приблизительное время переключения контекста процесса в С#? Если да, то как?
Я задал этот вопрос на основе книги Cracking the Coding Interview: 150 Вопросы и решения по программированию.
Их решение:
Предположим, что есть только 2 процесса, P1 и P2. (Это огромное приближение, я считаю, что есть более точные)
P1 выполняется, а P2 ожидает выполнения. В какой-то момент ОС должна поменять местами P1 и P2 — допустим, это происходит на N-й инструкции P1. Таким образом, время переключения контекста для этого будет:
Time_Stamp(P2_1) - TimeStamp(P2_N)
Одна из проблем заключается в том, что мы не можем записать временную метку каждой инструкции в процессе. И мы не учитываем время, затрачиваемое на переключение контекста между другими процессами.