リフレクションに走って記述の簡潔さだけに気合を入れたKinkuma FrameworkのViewModelですが、実際に初期化がどの程度遅いのか試してみました。
やったこと
100個のコマンドを持つViewModelクラスを3つ作り、1つは属性ベースでリフレクションを使ってコマンドの初期化を行う方法。もう1つは、T4 Templateベースで作成したコマンドを使う方法。最後の1つは100個のコマンドを愚直に全部手で初期化するコードを書く方法。
このViewModelを1000個作成するのにかかる時間を測定しました。
結果
やっぱリフレクション遅いな・・・・
Kinkuma Framework | 2000ms〜3000ms |
Kinkuma Framework + T4 | 300ms〜400ms |
手書き | 10ms〜20ms |