https://neue.cc/2024/05/01_R3_Presentation.html
合わせてスライドも読む。
TIPS: class と struct をエディタ上で視覚的に区別する
ちなみに、私はエディタ上で class と struct を視覚的に区別したいので、struct は緑色にしています(enumは黄色)。かなり捗るのでお勧め
真似したい、Visual Studio だとどこで設定するといいのだろう。
TimeProvider DeepDive
二点の経過時間を求めるなら、Stopwatch.GetTimeStamp() と Stopwatch.GetElapsedTime(timestamp) を使うのがよい。
このlongは、通常は高解像度タイムスタンプ、WindowsではQueryPerformanceCounterが使われています。TimeSpanでよく使うTicksではないことに注意してください。
BenchmarkDotNet
マイクロベンチマークを取るときは必ずBenchmarkDotNetを使ってください。
mutable Struct
最適化に便利。でも readonly を付けるとコンパイルエラー無しで書き換え不可になるので注意。
Rx の Operator は ThreadSafe ではない
並列で OnNext を叩くと壊れる。これは R3 も同様。
Observable の呼び出し側が単一ストリームはシングルスレッドを保証してあげる必要がある。
この辺りそうだろうな思っていたけどちゃんと言及されている文章を見つけられてよかった。