Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Unsafe.BitCast のすゝめ。
Search
neno
January 11, 2025
Technology
0
370
Unsafe.BitCast のすゝめ。
.NET Conf 2024 Osaka x Fukuoka の LT 登壇資料
ブログ:
Unsafe.BitCast のすゝめ。
neno
January 11, 2025
Tweet
Share
More Decks by neno
See All by neno
.NET 10 のパフォーマンス改善
nenonaninu
3
6.5k
C# 14 / .NET 10 の新機能 (RC 1 時点)
nenonaninu
1
2.8k
Aspire をカスタマイズしよう & Aspire 9.2
nenonaninu
0
870
分解して理解する Aspire
nenonaninu
2
2.8k
.NET 9 のパフォーマンス改善
nenonaninu
0
3.6k
C# 13 / .NET 9 の新機能 (RC 1 時点)
nenonaninu
1
2.7k
Re:ゼロから始める Observability
nenonaninu
3
1.4k
Node-AI のリッチな WEB フロントエンドを支える技術
nenonaninu
3
2.1k
C# ではじめる OpenTelemetry
nenonaninu
0
6k
Other Decks in Technology
See All in Technology
多様な最適化サービス開発をスケールさせる共通基盤とチーム構成
algoartis
0
110
20260120 Amazon VPC のパブリックサブネットを無くしたい!
masaruogura
2
140
BiDiってなんだ?
tomorrowkey
1
140
AI との良い付き合い方を僕らは誰も知らない (WSS 2026 静岡版)
asei
1
370
AI に「学ばせ、調べさせ、作らせる」。Auth0 開発を加速させる7つの実践的アプローチ
scova0731
0
330
AIAgentを駆使してSREが貢献する開発体験の向上
yoshiiryo1
3
900
BPaaSオペレーション・kubell社内 n8n活用による効率化検証事例紹介
kubell_hr
0
110
Java 25に至る道
skrb
3
230
Digitization部 紹介資料
sansan33
PRO
1
6.6k
kintone開発のプラットフォームエンジニアの紹介
cybozuinsideout
PRO
0
550
#22 CA × atmaCup 3rd 1st Place Solution
yumizu
1
230
Data Intelligence on Lakehouse Paradigm
scotthsieh825
0
180
Featured
See All Featured
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
47
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
240
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Being A Developer After 40
akosma
91
590k
Building Adaptive Systems
keathley
44
2.9k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
Into the Great Unknown - MozCon
thekraken
40
2.2k
Prompt Engineering for Job Search
mfonobong
0
140
Getting science done with accelerated Python computing platforms
jacobtomlinson
1
100
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
260
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
400
Side Projects
sachag
455
43k
Transcript
Unsafe.BitCast のすゝめ。 . NET Conf 2024 Osaka x Fukuoka 2025/01/11
何縫ねの。
何縫ねの。 NTT コミュニケーションズ イノベーションセンター Microsoft MVP for Developer Technologies (2024~)
.NET / Web Development nenoNaninu @nenoMake ブログ https://blog.neno.dev その他 https://neno.dev
OSS SignalR 周りのいろいろ開発しています •TypedSignalR.Client • C# の SignalR Client を強く型付けするための
Source Generator •TypedSignalR.Client.TypeScript • TypeScript の SignalR Client を強く型付けするための .NET Tool / library •TypedSignalR.Client.DevTools • SignalR 向けに Swagger UI 相当の GUI を自動生成する library •AspNetCore.SignalR.OpenTelemetry • SignalR の OpenTelemetry 対応 + log 強化 https://github.com/nenoNaninu
C# 13 / .NET 9 関連資料 新機能について語っています…! https://speakerdeck.com/nenonaninu/net-9-noxin-ji-neng-rc-1-shi-dian
C# 13 / .NET 9 関連資料 パフォーマンス改善についても語っています…! https://speakerdeck.com/nenonaninu/dot-net-9-nopahuomansugai-shan
Unsafe.As 使っていますか?
Unsafe.As は危険① サイズの違う値型をキャストした場合、意図しないメモリ領域を読んでしまう
Unsafe.As は危険② 参照型をキャストした場合
Unsafe.As は使い方を絞れば安全 •メモリレイアウトが同一な構造体 •サイズが同一で参照型を含まない構造体
そこで Unsafe.BitCast ですよ
Unsafe.As と Unsafe.BitCast
Unsafe.BitCast の特徴 •Unsafe.BitCast の型引数として渡せるのは構造体だけ • 構造体でなかったら実行時例外 •キャスト元とキャスト先の構造体のサイズは同一でなければならない • サイズが同一でなければ実行時例外 •パラメータは参照渡しではなく値渡し
Unsafe.As より 安全かつパフォーマンスも改善
Unsafe.BitCast はいいぞ
ブログに書いています https://blog.neno.dev/entry/2025/01/07/182438