$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Unsafe.BitCast のすゝめ。
Search
neno
January 11, 2025
Technology
0
360
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.2k
C# 14 / .NET 10 の新機能 (RC 1 時点)
nenonaninu
1
2.7k
Aspire をカスタマイズしよう & Aspire 9.2
nenonaninu
0
810
分解して理解する 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
2k
C# ではじめる OpenTelemetry
nenonaninu
0
5.9k
Other Decks in Technology
See All in Technology
Next.js 16の新機能 Cache Components について
sutetotanuki
0
190
MariaDB Connector/C のcaching_sha2_passwordプラグインの仕様について
boro1234
0
1k
Building Serverless AI Memory with Mastra × AWS
vvatanabe
0
590
Microsoft Agent Frameworkの可観測性
tomokusaba
1
110
たまに起きる外部サービスの障害に備えたり備えなかったりする話
egmc
0
410
業務の煩悩を祓うAI活用術108選 / AI 108 Usages
smartbank
9
12k
子育てで想像してなかった「見えないダメージ」 / Unforeseen "hidden burdens" of raising children.
pauli
2
330
【開発を止めるな】機能追加と並行して進めるアーキテクチャ改善/Keep Shipping: Architecture Improvements Without Pausing Dev
bitkey
PRO
1
130
Authlete で実装する MCP OAuth 認可サーバー #CIMD の実装を添えて
watahani
0
180
普段使ってるClaude Skillsの紹介(by Notebooklm)
zerebom
8
2.2k
AR Guitar: Expanding Guitar Performance from a Live House to Urban Space
ekito_station
0
230
SQLだけでマイグレーションしたい!
makki_d
0
1.2k
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.7k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
280
Building an army of robots
kneath
306
46k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
45
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
120
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.8k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
49
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
520
Context Engineering - Making Every Token Count
addyosmani
9
550
How to train your dragon (web standard)
notwaldorf
97
6.5k
Paper Plane
katiecoart
PRO
0
44k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
200
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