Да, 2,8 МБ - довольно большая полезная нагрузка для приложений «Hello World».Тем не менее, Blazor все еще является экспериментальной технологией, которая еще не готова к использованию.Существует множество причин, по которым сгенерированный вывод в настоящий момент настолько велик:
Ваше текущее приложение работает в интерпретируемом режиме, когда файл mono.wasm
отправляет CLR в ваш браузер, позволяя ему выполнять вашу DLL.Более быстрый и эффективный по размеру подход заключается в использовании Ahead of Time Compilation (AOT) , как описано в этой статье .Это позволило бы компилятору убрать все неиспользуемые библиотечные функции, что дает высоко оптимизированный вывод.
Возможности самой среды выполнения WebAssembly весьма ограничены, в будущей версии добавится сборка мусора и другие возможности, которые Blazor сможет использовать напрямую.На данный момент mono.wasm
включает в себя собственный сборщик мусора.
Сам проект Blazor имеет количество открытых вопросов , описывающих различные оптимизации, над которыми активно ведется работа.Он уже выполняет встряхивание деревьев и различные другие оптимизации, но этот тип работы требует времени.