C# WASM 도구 NetWasm 0.10.0 출시, Rust보다 작다는 주장에 반론 많음
- NetWasm 0.10.0은 GC를 전면 개편함. 객체에서 컬렉터 헤더를 없애고 배열을 단일 할당으로 바꿈
- Boehm 컬렉터는 제거되어 이를 고르면 빌드가 NWPACK007 오류로 실패함
- NetWasmGC는 0으로 채워진 슬롯 구간을 포인터로 순차 할당하고 사이드 마크 비트맵으로 표시함
- SDK 패키지로 빌드한 Console 42 크기는 47,895바이트로 소스 카나리아의 48,687바이트와 달라서 별도 기준으로 고정됨
Hacker News opinions
WASM에 GC가 있으니까 C#이 유리한 거 아님? Rust는 메모리를 직접 관리하니까 당연히 더 클 줄 알았는데, 원문 보니까 C# 쪽은 GC 달린 런타임을 같이 싣더라.
C#은 WASM GC를 쓰지도 못함. 불공정한 이유는 따로 있음. C# 런타임은 WASM 크기에 맞춰 최적화됐는데 Rust는 안 됐고, Rust로 훨씬 작게 만들 수 있음. 그래도 신기하긴 함.
비교가 불공정함. C# 벤치 코드만 후처리를 거치고 다른 타겟은 안 거침. 리덧 글 보면 저자도 Rust가 훨씬 더 줄일 수 있다고 인정함. 제목은 낚시에 가까움.
벤치마크는 원래 믿기 힘듦. 관리형 언어는 더 어려움. 두 언어 전문가가 같이 봐야 반반이라도 나오는데, 이런 건 제목용 글이라 그냥 무시하는 편임.
WASM 쓸 이유를 잘 모르겠음. 우리 팀은 Blazor 서버 쓰는데 5년 동안 WASM 모드 얘기가 한 번도 안 나왔음. 웹소켓 전송 문제 붙잡고 있을 바에 cshtml이랑 JS로 stateless HTTP 쓰는 게 낫더라.
웹이 자바스크립트 때문에 무거워진 게 이유 아님?
브라우저 안에서 보안이랑 이식성 때문에 쓰는 거지 성능 때문에 쓰는 건 아님. JS나 파이썬 VM 대신 WASM으로 돌리는 케이스가 있고 컨테이너 쪽 특성도 좋음. 근데 핵심 기술은 아니라서 아직 기대만 큰 상태임.
Rust wasm 바이너리 진짜 큼. 크기랑 메모리 신경 쓰면 Zig가 더 나은 후보임.