Yoda писал(а):
Также есть основания полагать, что перезагрузка CR3 на самом деле не сильно бьёт по производительности. Так, на доступ к каждым 4к памяти добавляется только 1 (а на каждые 4М памяти 2) чтение 4 байт из таблиц. В абсолютном исчислении это получится около 0.1% производительности.
А ведь в 64-битном режиме есть еще PCID: записи в TLB помечаются идентификатором процесса, который пишется в CR3 вместе с адресом PML4, и не выбрасываются оттуда сразу. В таком случае потери еще меньше могут быть.