タグ

C#に関するMagicantのブックマーク (4)

  • 【C#】C# の async/await は実際にどうやって動いているか。 - ねののお庭。

    はじめに 登壇版 Taskの質 C# のイテレータ async/await Compiler Transform ExecutionContext builder.Start() の重要性 IAsyncStateMachine.MoveNext おわりに はじめに C#er は呼吸するように使っている async/await。 そんな async/await について、先日 Stephen Toub 氏 (.NET の中の人。中心人物の一人。) が How Async/Await Really Works in C# という非常に面白い記事を投稿していました。 この記事では Stephen 氏の記事をベースに、C# において async/await は実際どうやって動いてるの?というお話をしていきます。 以前に C#での非同期メソッドの分析。 という翻訳記事を書いたのですが、元になった記

    【C#】C# の async/await は実際にどうやって動いているか。 - ねののお庭。
    Magicant
    Magicant 2023/05/28
    予想の十倍以上詳しい解説記事だった
  • neue cc - MemoryPackにみる .NET 7/C# 11世代のシリアライザー最適化技法

    MemoryPackという、C#に特化することで従来のシリアライザーとは比較にならないほどのパフォーマンスを発揮する新しいシリアライザーを新しく開発しました。 高速なバイナリシリアライザーである MessagePack for C# と比較しても、通常のオブジェクトでも数倍、データが最適な場合は50~100倍ほどのパフォーマンスにもなります。System.Text.Jsonとでは全く比較になりません。当初は .NET 7 限定としてリリースしましたが、現在は .NET Standard 2.1(.NET 5, 6)やUnity、そしてTypeScriptにも対応しています。 シリアライザーのパフォーマンスは「データフォーマットの仕様」と「各言語における実装」の両輪で成り立っています。例えば、一般的にはバイナリフォーマットのほうがテキストフォーマット(JSONとか)よりも有利ですが、バイナリ

  • Code-Awareなライブラリ

    .NET Compiler Platformによって、Code-Awareなライブラリを作れるようになりました。 Code-Aware、直訳すると「コードを理解している」「コードを意識している」という感じになります。ライブラリだけでなく、ライブラリ利用側のコードを理解して、問題点の指摘やその修正方法まで提供することを言います。 概要 コード アナライザー ライブラリ固有の事情の例 ライブラリ固有のコード アナライザーの例 Code-Aware ライブラリ 概要 Ver. 6 (C# 6の言語的な機能ではありませんが、C# 6と同世代(Visual Studio 2015世代)の技術なので、利用できるのはC# 6以降になります。) .NET Compiler Platformを使うことで、 コードを解析してその問題点の指摘やその修正方法を提供できる、コード アナライザーというものを作れます。

    Code-Awareなライブラリ
  • artima - The Trouble with Checked Exceptions

    Anders Hejlsberg, the lead C# architect, talks with Bruce Eckel and Bill Venners about versionability and scalability issues with checked exceptions. Anders Hejlsberg, a distinguished engineer at Microsoft, led the team that designed the C# (pronounced C Sharp) programming language. Hejlsberg first vaulted onto the software world stage in the early eighties by creating a Pascal compiler for MS-DOS

  • 1