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
260
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
分解して理解する Aspire
nenonaninu
2
1.9k
.NET 9 のパフォーマンス改善
nenonaninu
0
2.8k
C# 13 / .NET 9 の新機能 (RC 1 時点)
nenonaninu
1
2.3k
Re:ゼロから始める Observability
nenonaninu
3
1k
Node-AI のリッチな WEB フロントエンドを支える技術
nenonaninu
3
1.6k
C# ではじめる OpenTelemetry
nenonaninu
0
4.9k
.NET 8 で既定で有効になった Dynamic PGO について
nenonaninu
3
8.6k
明日から使える ASP.NET Core ロギング術!
nenonaninu
1
11k
C# の async/await は実際にどうやって動いているか
nenonaninu
10
28k
Other Decks in Technology
See All in Technology
Spring Bootで実装とインフラをこれでもかと分離するための試み
shintanimoto
7
840
勝手に!深堀り!Cloud Run worker pools / Deep dive Cloud Run worker pools
iselegant
2
400
Automatically generating types by running tests
sinsoku
2
3.3k
Devinで模索する AIファースト開発〜ゼロベースから始めるDevOpsの進化〜
potix2
PRO
7
3.4k
Notion x ポストモーテムで広げる組織の学び / Notion x Postmortem
isaoshimizu
1
120
バックオフィス向け toB SaaS バクラクにおけるレコメンド技術活用 / recommender-systems-in-layerx-bakuraku
yuya4
6
550
AI AgentOps LT大会(2025/04/16) Algomatic伊藤発表資料
kosukeito
0
140
The Tale of Leo: Brave Lion and Curious Little Bug
canalun
1
120
Classmethod AI Talks(CATs) #21 司会進行スライド(2025.04.17) / classmethod-ai-talks-aka-cats_moderator-slides_vol21_2025-04-17
shinyaa31
0
600
ここはMCPの夜明けまえ
nwiizo
28
9.7k
Рекомендации с нуля: как мы в Lamoda превратили главную страницу в ключевую точку входа для персонализированного шоппинга. Данил Комаров, Data Scientist, Lamoda Tech
lamodatech
0
750
AIエージェント開発手法と業務導入のプラクティス
ykosaka
2
1.3k
Featured
See All Featured
Being A Developer After 40
akosma
91
590k
The Invisible Side of Design
smashingmag
299
50k
Why Our Code Smells
bkeepers
PRO
336
57k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
41
2.2k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
2.9k
Code Review Best Practice
trishagee
67
18k
The Pragmatic Product Professional
lauravandoore
33
6.5k
How STYLIGHT went responsive
nonsquared
99
5.5k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.2k
Making the Leap to Tech Lead
cromwellryan
133
9.2k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
23
2.6k
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