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
430
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Unsafe.BitCast のすゝめ。
.NET Conf 2024 Osaka x Fukuoka の LT 登壇資料
ブログ:
Unsafe.BitCast のすゝめ。
neno
January 11, 2025
More Decks by neno
See All by neno
大 AI 時代におけるC# の事情 ~ぶっちゃけトークを交えながら~
nenonaninu
1
910
.NET 10 のパフォーマンス改善
nenonaninu
3
7.6k
C# 14 / .NET 10 の新機能 (RC 1 時点)
nenonaninu
1
3.2k
Aspire をカスタマイズしよう & Aspire 9.2
nenonaninu
0
1.1k
分解して理解する Aspire
nenonaninu
2
3.3k
.NET 9 のパフォーマンス改善
nenonaninu
0
4k
C# 13 / .NET 9 の新機能 (RC 1 時点)
nenonaninu
1
2.9k
Re:ゼロから始める Observability
nenonaninu
3
1.6k
Node-AI のリッチな WEB フロントエンドを支える技術
nenonaninu
3
2.3k
Other Decks in Technology
See All in Technology
#jawssonic2026 あの時代が悪かった ~動かなかったSageMakerと共に迎えたイベント当日~
ktkn1129
0
130
AIエージェントの開発・提供におけるセキュリティリスクの論点と対策
flatt_security
1
560
ブラウザアプリの継続的パフォーマンスモニタリング (序) / Continuous Browser Application Performance Monitoring; Act 1
moznion
0
110
[RSJ26] Building a VLA Model Based on Self-Distilled Classification
keio_smilab
PRO
0
190
Bet AI Day 2026丨バクラク Autopilot、業務システムの再設計
layerx
PRO
2
1.1k
JAWS-UG初心者支部#88わいわい初心塾(夏休みの宿題やったかGit編)
otsuki
0
120
はじめてのDatabricks:技術者向けワークショップ / beginner-workshop
databricksjapan
PRO
0
150
Amazon S3 Tablesに全部任せてみた結果——コンパクション/スナップショット管理は本当に手放せるか
shigeruoda
0
370
Bet AI Day 2026丨AIを「使う」から、AIが「働く」へ ― LayerXが進める「組織AI」の社会実装
layerx
PRO
2
2.1k
生成AI時代の クレデンシャルとパーミッション設計
nrinetcom
PRO
3
1.5k
作り直せるコードは迅速に 作り直せないDBは慎重に - AI時代のプロダクトエンジニアが「判断の不可逆性」で開発速度を変える話
kinosuke01
0
230
AIで実装は速くなった。なのにプロダクトは速くならない。職能の壁を越えて価値のフローを設計する
nwiizo
6
6.9k
Featured
See All Featured
The untapped power of vector embeddings
frankvandijk
2
1.9k
Testing 201, or: Great Expectations
jmmastey
46
8.3k
Become a Pro
speakerdeck
PRO
31
6.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
410
Designing for humans not robots
tammielis
254
26k
Skip the Path - Find Your Career Trail
mkilby
1
220
Ruling the World: When Life Gets Gamed
codingconduct
0
320
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
320
Thoughts on Productivity
jonyablonski
76
5.4k
Amusing Abliteration
ianozsvald
1
290
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3k
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