Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Моя тестовая реализация MessagePack-а работала на ~20% быстрее чем neuecc/MessagePack-CSharp, а более быстрого сериализатора я пока не видал.
Я то думал что там реализована генерация IL кода, что может в теории работать даже быстрее кода на C#:
- Utilize dynamic code generation to avoid boxing value types. Use AOT generation on platforms that prohibit JIT.
- Heavily tuned dynamic IL code generation to avoid boxing value types. See DynamicObjectTypeBuilder. Use AOT generation on platforms that prohibit JIT.
Генератор C# кода там тоже есть как раз для Unity, тоже на основе Roslyn, Pre Code Generation(Unity/Xamarin Supports).
If you want to avoid generate cost or run on Xamarin or Unity, you need pre-code generation. mpc.exe(MessagePackCompiler) is code generator of MessagePack for C#. mpc can download from releases page, mpc.zip. mpc is using Roslyn so analyze source code.
Я то думал что там реализована генерация IL кода, что может в теории работать даже быстрее кода на C#
Генератор C# кода там тоже есть как раз для Unity, тоже на основе Roslyn, Pre Code Generation(Unity/Xamarin Supports).
Я видел, но не пробовал. Показалось не очень удобным с точки зрения конечного использования.
То что сразу просается в глаза, это возможность более полноценого inlining-а методов.
А там разве не испольуется AggressiveInlining для критичный методов? Хотя не совсем понимаю зачем его использовать, если jitter по идее и так может инлайнить маленькие методы если посчитает нужным.
Кодогенерация при помощи Roslyn