マルチコアJITを利用する



vGamePadの起動時にやってること

最近のCPUはATOMプロセッサですらマルチコアの時代だったりします。

.NET4.6からはMicrosoft .NET Nativeが実装されるのですが、現時点ではNGen.exeを使うかそのままJITコンパイルするかになります。

で、vGamePadは「マルチコアJIT」を利用しています。

キーとなるクラス、メソッドはこんな感じです。

問題はSetProfileRootの引数(プロファイル ファイルが格納されるフォルダーへの完全パス)をどこにするか?なんですが、Windows File System Namespace Usage Guidelines(英語)を参考に、%ProgramData%を使うことにしています。
今でもこの仕様はちょっと後悔しております…(もしかしたら変えるかも)

ソースコードはこんな感じです。

var ver = FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location);
var profilePath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\" + ver.CompanyName + "\\" + ver.ProductName;
Directory.CreateDirectory(profilePath);
ProfileOptimization.SetProfileRoot(profilePath);
ProfileOptimization.StartProfile("vGamePad.JIT.Profile");

とりあえず.NET4.6まではこの仕様で実装させてもらいます。


Leave a comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です