Я хочу понять, почему решение для буферов протокола для .NET, разработанное Marc Gravell так же быстро, как и есть.
Я могу понять, как оригинальное решение Google достигло своей производительности: оно создает генератор оптимизированного кода для сериализации объектов; Я написал сериализацию вручную и знаю, что можно писать довольно быстрый код таким образом, если вы избегаете размышлений. Но библиотека Marc - это среда выполнения, которая использует атрибуты и не создает сгенерированный код. Итак, как это работает?