はじめに
「Heap Allocations Viewer」を Rider に導入すると
割り当てが発生しているコードに下線が表示されるようになるので
自分が知らなかった割り当ての存在を知ることができます
この記事では、どのようなコードがハイライトされるようになるか紹介していきます
目次
導入方法
Rider メニューの「File > Settings」を選択して
「Plugins」内の「Marketplace」を押して
検索欄に「Heap Allocations Viewer」と入力して
表示された Heap Allocations Viewer を選択して「Install」を押します
そして、インストールが完了したら「Save」を押して
Rider を再起動すると導入が完了です
もしも「Plugins」内の「Marketplace」に
Heap Allocations Viewer が見つからなかった場合は
「Installed」を押して検索欄に「Heap Allocations Viewer」と入力して
表示された Heap Allocations Viewer を選択して「Enable」を押します
そして、「Save」を押して Rider を再起動すると導入が完了です
ハイライト表示されるコード
値型を object 型に変換
Boxing allocation: conversion from value 'XXXX' to reference type 'object'
char 型を object 型に変換
Boxing allocation: conversion from value 'char' to reference type 'object'
値型で System.Object の仮想関数を呼び出し
Boxing allocation: inerited System.Object virtual method call on value type instance
値型をインターフェイスに変換
Boxing allocation: conversion from value type 'XXXX' to reference type 'YYYY'
デリゲートの割り当て
Delegate allocation: from method group
参照型のインスタンスの作成
Object allocation: refeerence type creation
配列の作成
Object allocation: array creation
文字列の連結
Object allocation: string concatenation
列挙子の割り当て
Possible object allocation: enumerator allocation (except iterators or collection with cached enumerator)
デリゲートで this 参照をキャプチャ
Delegate allocation: capture of 'this' reference
クロージャの割り当て
Closure allocation
LINQ の呼び出し
Object allocation: LINQ method call