BenchmarkDotNetをarm64/linuxで動かす

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で動いたからいいとしよう。

投稿日:
カテゴリー: C#

コメントする

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