NetWasm заставляет C# обгонять Rust по размеру Wasm-сборки
C# now beats Rust on WASM size
Независимый компилятор NetWasm 0.8.0 собирает C# и .NET CIL в автономные Wasm-компоненты WASI Preview 2. Для программы, печатающей «42», результат вместе с точным сборщиком мусора Compact занимает 47 798 байт против 53 635 байт у Rust 1.95.0 с профилем оптимизации по размеру — на 10,9% меньше в сыром виде и на 20,4% меньше после Brotli-11. Это замер конкретной нагрузки, а не рейтинг языков.
Это новая платформа .NET, а не desktop .NET, засунутый в песочницу Wasm. Именно эта граница делает возможным C# размером с нативный Wasm.
- sondr3
Сравнение немного нечестное: бенчмаркируемый код на C# здесь тоже проходит постобработку, чего не делается ни с одной из других целей. Смотрите этот комментарий[1] на reddit, где автор объявил об этом в сабреддите /r/dotnet — Rust может уйти гораздо, гораздо ниже. Заголовок в лучшем случае вводит в заблуждение, а в худшем — это ложь. Это здорово, но говорить, что он обгоняет Rust, — далеко от истины, за исключением очень узкого бенчмарка, сделанного для демонстрации этого инструмента.
[1]: https://www.reddit.com/r/dotnet/comments/1x7wsgb/rust_just_l...
- bob1029
Я никогда не понимал привлекательности wasm вне особых случаев производительности. Мы ни разу не рассматривали переход с Blazor server side на режим wasm. За более чем 5 лет это ни разу не всплывало. Вся эта идея оказалась огромной отвлекающей тратой инженерного таланта. Вместо того чтобы гоняться за этим идеалистическим wasm-пайплайном и мучиться со странными websocket-транспортами, мы могли бы писать скучный старый cshtml и JavaScript поверх stateless HTTP.
Если вы не делаете веб-версию autocad или premiere, я не вижу смысла связываться с этой технологией.
- weinzierl
Это ведь немного нечестное сравнение, не так ли?
Поскольку WASM поставляется со сборщиком мусора, который может использовать C#, в то время как Rust всю работу по управлению памятью выполняет сам, конечно, он будет больше.
EDIT: Прочитав пост OP более внимательно, я думаю, что ошибаюсь. По-видимому, в сравниваемых версиях версия на C# поставляется с рантаймом со сборщиком мусора.