浮動小数点計算や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
の推奨などはしてくれません(たぶん)。