Я пытаюсь измерить время переключения контекста сопрограммы и потока Python, имея два потока, ожидающих события, установленного другим потоком.
Переключение контекста потока занимает 3,87 мкс, что соответствует моим ожиданиям в отношении контекста ОС Для переключения требуется несколько тысяч инструкций.
Переключение контекста версии сопрограммы составляет 14,43 мкс, что для меня удивительно, поскольку я ожидал, что переключение контекста сопрограммы будет на порядок быстрее.
Это проблема сопрограммы Python? моя программа неправильная?
Код можно найти в этом документе
Переписывание программы на Rust дает более разумные результаты:
coro: 163 ns
тема: 1989 ns
Подробнее здесь: https://stackoverflow.com/questions/790 ... ext-switch
Мобильная версия