---
title: 個人的な目線でのdotnet-runtimeの動向
tags: 
author: [prozolic（プロゾリック）](https://image.docswell.com/user/prozolic)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/P7XQNNLZEX.jpg?width=480
description: 2026/05/29に開催された「超dotnet new」の登壇資料になります。
published: May 30, 26
canonical: https://image.docswell.com/s/prozolic/KR8672-2026-05-30-214517
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/P7XQNNLZEX.jpg)

個人的な目線でのdotnet/runtimeの動向
超dotnet new
2026/05/29
prozolic
1


# Page. 2

![Page Image](https://bcdn.docswell.com/page/37K9NNLV7D.jpg)

自己紹介
prozolic（プロゾリック）
業務アプリケーションエンジニア/一般C#er
GitHub: @prozolic
最近の趣味: ウォーキング
2


# Page. 3

![Page Image](https://bcdn.docswell.com/page/LJ3WVV6QJ5.jpg)

.NET Contributor（2025年9月～）
主にLibrariesの最適化やバグ修正
最近はSystem.Text.Jsonのバグ修正に挑戦
3


# Page. 4

![Page Image](https://bcdn.docswell.com/page/8JDK88VWEG.jpg)

話す内容
dotnet/runtimeにマージされたPRの状況
個人的に気になった動向
System.Text.Json - union サポート
unsafeからSpanへの移行
※あくまで個人的な目線での見解です。
4


# Page. 5

![Page Image](https://bcdn.docswell.com/page/VEPK88VX78.jpg)

2026年にdotnet/runtimeのマージされたPRは
どれくらいあると思いますか
5


# Page. 6

![Page Image](https://bcdn.docswell.com/page/27VVNNZ37Q.jpg)

マージされたPRの状況
マージされたPR数は2,945件（PR Digest.NETのデータを用いて集計）
JITコンパイラとWASMの対応が活発
NativeAOT関連も活発
6
https://prozolic.github.io/PRDigest.NET


# Page. 7

![Page Image](https://bcdn.docswell.com/page/5JGLKK4Y7L.jpg)

マージPRの状況 - ラベル別TOP10
PR Digest.NETから集計
https://prozolic.github.io/PRDigest.NET/
7


# Page. 8

![Page Image](https://bcdn.docswell.com/page/47QYNNG6EP.jpg)

マージPRの状況 - AI Agentの活用
マージされたPRの約21パーセントは、GitHub Copilotが作成者
（2026/05/26時点）
GitHub Copilotで作成したPRをレビューするパターンが多い
area-skills ラベルの追加など AI Agentに対するサポートも充実
8


# Page. 9

![Page Image](https://bcdn.docswell.com/page/KE4WGG5MJ1.jpg)

個人的に気になっている動向
9


# Page. 10

![Page Image](https://bcdn.docswell.com/page/L71YDDWYJG.jpg)

System.Text.Json の union 対応
.NET 11 preview4 では未対応
エラーは発生しないけど結果がおかしい
public union Result(int, string);
// .NET11 preview 4では、{&quot;Value&quot;:&quot;hello&quot;}でシリアライズ
var resultStr = JsonSerializer.Serialize&lt;Result&gt;(new Result(&quot;hello&quot;));
// .NET11 preview 4では、Value = null（エラーも発生しない！？）
var deserializedResultStr = JsonSerializer.Deserialize&lt;Result&gt;(resultStr);
10


# Page. 11

![Page Image](https://bcdn.docswell.com/page/G7WGYY61E2.jpg)

System.Text.Json の union 対応
mainブランチには対応PRがマージ済
unionの内部値をそのままシリアライズする動作
.NET 11 preview 6に追加される見込み
public union Result(int, string);
// &quot;hello&quot;
var resultStr = JsonSerializer.Serialize&lt;Result&gt;(new Result(&quot;hello&quot;));
// Result.Value = &quot;hello&quot;
var deserializedResultStr = JsonSerializer.Deserialize&lt;Result&gt;(resultStr);
11


# Page. 12

![Page Image](https://bcdn.docswell.com/page/4JZLXXYXE3.jpg)

unsafeからSpanへ切り替える
2026年4月から、unsafeベースの処理を
Span/BitConverter/BinaryPrimitivesなどに変更する対応が増加
reduce-unsafeラベルから追跡可能
12


# Page. 13

![Page Image](https://bcdn.docswell.com/page/YE6W44DPEV.jpg)

unsafeからSpanへ切り替える
基本的にSpanの安全なループパターンに変更している
unsafeによるループ
spanベースのループ
ReadOnlySpan&lt;byte&gt; value;
ReadOnlySpan&lt;byte&gt; value;
ref byte pos = ref MemoryMarshal.GetReference(value);
ref byte end = ref Unsafe.Add(ref pos, value.Length);
while (value.Length &gt;= sizeof(int))
{
Add(BitConverter.ToInt32(value));
value = value.Slice(sizeof(int));
}
while (Unsafe.ByteOffset(ref pos, ref end) &gt;= sizeof(int))
{
Add(Unsafe.ReadUnaligned&lt;int&gt;(ref pos));
pos = ref Unsafe.Add(ref pos, sizeof(int));
}
https://github.com/dotnet/runtime/pull/127382
13


# Page. 14

![Page Image](https://bcdn.docswell.com/page/GE5MQQ3PE4.jpg)

unsafeからSpanへ切り替える
切り換える理由を推測すると
JITコンパイラでの最適化で、Spanのループパターンがunsafeと同等のコー
ド生成できるようになったから
C# 16にリリース予定のunsafeの再設計に対する準備のため
（これが本命？）
14
https://devblogs.microsoft.com/dotnet/improving-csharp-memory-safety/


# Page. 15

![Page Image](https://bcdn.docswell.com/page/9729PPZZJR.jpg)

インライン化の予算の条件付き拡張
見た目は普通のunsafeを取り除くPR
https://github.com/dotnet/runtime/pull/127845
その中に、Hardware Intrinsicsが存在するとコンパイラ側のインライン化の
予算（time budget）を5倍に増加する対応も追加されている
15


# Page. 16

![Page Image](https://bcdn.docswell.com/page/DJY455RN7M.jpg)

インライン化の予算の条件付き拡張
Spanの呼び出しが増加したことで、インライン化の予算が不足し、
ベンチマークが遅くなった
今後のunsafeを取り除く対応で同様のインライン化の予算が不足する可能性
がある
if (Vector128.IsSupported || Vector256.IsHardwareSupported)
{
// こういうケース
}
16


# Page. 17

![Page Image](https://bcdn.docswell.com/page/V7NYNNDVE8.jpg)

まとめ
JITコンパイラとWASM（WebAssembly）の対応が活発
AI Agentとの利用が活発
System.Text.Jsonのunion対応
unsafeからSpanベースに絶賛切り替え中
PRには意外な変更が混ざっていることもある
→定期的な確認は大事！
17


