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
400
0
Share
Unsafe.BitCast のすゝめ。
.NET Conf 2024 Osaka x Fukuoka の LT 登壇資料
ブログ:
Unsafe.BitCast のすゝめ。
neno
January 11, 2025
More Decks by neno
See All by neno
.NET 10 のパフォーマンス改善
nenonaninu
3
7.1k
C# 14 / .NET 10 の新機能 (RC 1 時点)
nenonaninu
1
3k
Aspire をカスタマイズしよう & Aspire 9.2
nenonaninu
0
1k
分解して理解する Aspire
nenonaninu
2
3.1k
.NET 9 のパフォーマンス改善
nenonaninu
0
3.8k
C# 13 / .NET 9 の新機能 (RC 1 時点)
nenonaninu
1
2.8k
Re:ゼロから始める Observability
nenonaninu
3
1.5k
Node-AI のリッチな WEB フロントエンドを支える技術
nenonaninu
3
2.2k
C# ではじめる OpenTelemetry
nenonaninu
0
6.3k
Other Decks in Technology
See All in Technology
LookerとADKで作る社内AIエージェント
chanyou0311
0
260
続 運用改善、不都合な真実 〜 物理制約のない運用改善はほとんど無価値 / 20260518-ssmjp-kaizen-no-value-without-physical-constraints
opelab
2
250
"うちにはまだ早い"は本当? ─ 小さく始めるPlatform Engineering入門
harukasakihara
7
630
写真で見るAWS Summit Singapore 2026
k_adachi_01
0
110
「背中を見て育て」からの卒業 〜専門技術としてのテスト設計を軸に、品質保証のバトンを繋ぐ〜 #genda_tech_talk
nihonbuson
PRO
4
1.5k
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
1.7k
社内RAGの導入で気を付けたポイント
yakumo
1
120
AIエージェントの支払い基盤 AgentCore Payments概要
kmiya84377
2
200
Redmine次期バージョン7.0の注目新機能解説 — UI/UX強化と連携強化を中心に
vividtone
1
170
AI対話分析の夢と、汚いデータの現実 Looker / Dataplex / Dataform で実現する品質ファーストな基盤設計
waiwai2111
0
640
"スキルファースト"で作る、AIの自走環境
subroh0508
0
590
アプリブロック機能のつくりかたと、AIとHTMLの不合理な相性の良さについて
kumamotone
1
260
Featured
See All Featured
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.7k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
110
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Automating Front-end Workflow
addyosmani
1370
200k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
740
Product Roadmaps are Hard
iamctodd
PRO
55
12k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
140
Fireside Chat
paigeccino
42
3.9k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
280
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.2k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
340
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