BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Microsoftが.NET 9プレビュー5をリリース

Microsoftが.NET 9プレビュー5をリリース

原文リンク(2024-07-08)

先月、Microsoftは.NET 9の5番目のプレビューをリリースした。今年後半にリリースが予定されているこのフレームワークの新バージョンは、Standard Term Support(STS)リリースであり、2024年11月12日から2026年5月12日までの18ヶ月間、複数のOS上でサポートされる。このプレビュー版では、パフォーマンスが改善され、AI機能の強化、優先順位付けされた非バインドチャンネル、SearchValuesによる部分的な文字列検索、OpenTelemetryのより柔軟なアクティブリンクなどの機能が提供される。

このリリースのもっとも重要な特徴の1つは、TensorPrimitivesTensor<T>型のアップデートによるAI機能の拡張である。TensorPrimitiveクラスは、値のスパンに対して数値演算をするために静的メソッドを提供する。この更新により、クラスが公開するメソッドのスコープが大幅に拡張され、40個(.NET 8)から約200個のオーバーロードが追加された。パフォーマンスに関しては、SIMDに最適化された実装により、多くの演算が高速化されている。

前のリリースで導入された新しいTensor<T>型は、(ML.NETのような)AIライブラリとの効率的な相互運用を提供することを目的としている。また、インデックス作成とスライス操作を提供することで、データ操作を可能にしている。さらに、Tensor型はTensorPrimitives上に構築されているため、TensorPrimitivesのアップデートの恩恵を受ける。

このリリースのもう1つの興味深いアップデートは、優先順位付けされた無制限チャネルである。無制限チャネルとは、格納できるアイテムの数に制限がないスレッドチャネルを指す。新しい優先順位付きチャネルは、System.Threading.ChannelsライブラリにCreateUnboundedPrioritized<T>メソッドが追加されたことで提供される。新しいメソッドによって作成されたチャネルは、Comparer<T>.Defaultまたはファクトリメソッドに提供されたカスタムIComparer<T>のいずれかに従って、その要素を順序付ける。以下の例では、チャネルに書き込まれた順序が異なっていても、1から5までの数字を順番に出力している。

using System.Threading.Channels;Channel<int> c = Channel.CreateUnboundedPrioritized<int>();await c.Writer.WriteAsync(1);await c.Writer.WriteAsync(5);await c.Writer.WriteAsync(2);await c.Writer.WriteAsync(4);await c.Writer.WriteAsync(3);c.Writer.Complete();while (await c.Reader.WaitToReadAsync()){    while (c.Reader.TryRead(out int item))    {        Console.WriteLine(item);    }}

出典:Microsoft

.NET 8で導入されたSearchValues型は、スパン内の検索に最適化されたソリューションを提供する。.NET 9では、この型はより大きな文字列内の部分文字列の検索をサポートするように拡張された。これは、基礎となるプラットフォームのSIMDサポートを利用するために最適化された別の実装である。その結果、(Regexのように)この機能を実装の一部として使用する、より高いレベルの型も最適化される。

System.Diagnostics.Activity.AddLinkメソッドの追加により、OpenTelemetryのアクティビティリンクがより柔軟になった。これは、アクティビティオブジェクトの作成後に、アクティビティオブジェクトを他のトレースコンテキストにリンクさせるもので、OpenTelemetry の仕様により合致している。

特に、新しいTask.WhenEachメソッドは、awaitforeachを使って、タスクの完了を繰り返し実行可能だ。また、TypeDescriptorクラスのトリミングサポート、ECMA-335型名を解析するための新しいTypeNameクラス、Spanoverloadsでのparamsのパフォーマンス向上も含まれている。

このリリースの詳細については、こちらを参照してほしい。.NET 9 Preview 5はLinux、macOS、Windowsで利用可能だ。

作者について

この記事に星をつける

おすすめ度
スタイル

BT