AWSのarm64/linuxで、Dotnetのベンチマークを取ってみた。
この記事は、arm64/linuxでBenchmarkDotNetを動かす上でハマった点のメモ。
ソースコードは、WindowsのVisualStudioで管理する。
LinuxでのDotnetの実行方法は、前書いたのを参照
https://gitan.dev/?p=86
やってみて困ったのは、BenchmarkDotNetを実行するとエラーが出る。
Unable to find .sln or .csproj file. // 以下略
BenchmarkDotNetは実行時に、なんかビルドしなおしているのか、実行したexeとは別のコピーみたいなのを実行して計測しているっぽい。
これは、ベンチマーク実行中にフォルダができてて、releaseのコピーみたいなのができているからわかる。
実行後には消えるけど。
さて、このコピーだか、再ビルドがかがうまくいっていないっぽい。
私としては、別に送ったプログラムそのまま実行してくれればいいんだが。
いろいろ英語圏で調べてると、InProcessEmitToolchainとかが出てくる。が・・・うまくいかん。
結果として、ベンチマークターゲットのclassに、
[InProcess]
を追加すれば、そのまま実行してくれるらしい。
解決なのか回避なのかわからんけど、arm64,linuxで動いたからいいとしよう。