やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

dotnetがクソ遅い。cscのほうが速い。

 ビルドに60秒とか遅すぎてハゲる。

コマンド

 C#ソースコードをビルド&実行するコマンドは以下の2種類ある。

コマンド 概要
csc コンパイラソースコードから実行ファイルを生成する
dotnet 最新のコマンド。コンパイルなど色々できるが超遅い

結果

コマンド 時間(秒)
csc 10
dotnet build 50

 cscのほうが5倍も速い。

試してみた

条件

 公平を期すため、dotnet buildを使う。dotnet runだと実行まで含めてしまうから。

ソースコード

Program.cs

class Program { static void Main() => System.Console.WriteLine("Hello world"); }

計測

time csc Program.cs
time dotnet new console -o pj
cp Program.cs ./pj/Program.cs
cd pj
time dotnet build
コマンド 時間(秒)
csc 10
dotnet build 50

 ちなみにdotnet runだと60秒くらいかかる。そもそもプロジェクト作成dotnet newで20秒くらいかかった。遅すぎ!

所感

 タイポ修正に60秒間も浪費させられる苦痛。

 できるだけcscを使いたい。でも、いちいち所有権を付与して実行するのを別途コマンドせねばならない。これを自動化するスクリプトを書きたい。

対象環境

$ uname -a
Linux raspberrypi 4.19.42-v7+ #1218 SMP Tue May 14 00:48:17 BST 2019 armv7l GNU/Linux