potisanのプログラミングメモ

プログラミング素人です。昔の自分を育ててくれたネット情報に少しでも貢献できるよう、情報を貯めていこうと思っています。Windows環境のC++やC#がメインです。

C# ReSharper 2024.2.3はVisual Studioのコード分析+少々αだと感じた。

浮動小数点計算やPEファイルの解析クラスを高速化しようとしてReSharperを導入してみました。 Trial版を30分ほど使った感想は以下の通りです。使用期間は30日ですが、既にアンインストールしたので項目は増えません。

  • WinFormsやWindows依存クラスライブラリでの確認結果です。Visual C#のコード分析は「最新の推奨」にしていました。
  • 上記の用途ならVisual C#のコード分析で十分です。対象や使い方が違えばより便利な可能性があります。
  • 分析結果のカテゴリ分けは便利でした。Visual C#のエラー一覧では「エラー」「警告」「メッセージ」の分類なので、(抑制したはずがなぜか消えない)エラーを繰り返しスクロールする必要があります。
  • スペルミス確認や使わない引数・変数の検出は見栄え上の問題ですが便利でした。
  • LINQやパターンマッチの推奨は一長一短だと感じました。forループをLINQに置き換えたがるので、場合によってはパフォーマンスが下がります(今のC#なら、単純比較等ではCPU拡張命令の使用で高速化する場合もあります)。
  • コレクション記法[...]への変換等はVisual C#のコード分析とかなり重複した印象を受けました。
  • 使わない表現、例えばusingが追加されても残存するSystem.ComponentModel.~等の検出は丁寧でした。
  • パフォーマンス上の修正は入らないようなので、高速化用途ではVisual C#のコード分析と大差なく感じました。例えばArrayPoolの推奨やSpanへの置き換え、ImmutableCollectionMarshal.AsImmutableArrayの推奨などはしてくれません(たぶん)。