WSL1と同じ感覚でWSL2を使ったらプログラム実行速度が爆遅化した
ごきげんよう、ちゃまおです。
先日、C言語で作成したシミュレーションプログラムの実行速度を向上させて、作業効率を改善させる事を理由に、ゲーミングPCを予算購入してもらいました。
初めて触るゲーミングPCだったので、ハイテンションになりながら、プログラミング環境を整え、シミュレーションを回した結果...爆速化せず、むしろ爆遅化しました。
スペック比較
今まで使用していたPCと、今回購入してもらったPCの主なスペックを比較したものが、以下の表です。CPUのカッコ内数値は、CINEBENCH R23のSingle coreテスト結果です。今回購入してもらったPCの方では、専用ソフト使ってPCのパフォーマンス設定が出来たので、CPUの性能が最大限に発揮される設定としました。
今まで使用していたPC | 今回購入してもらったPC | |
---|---|---|
CPU | i7-4770HQ (593pts) | i9-10980HK (1304pts) |
メモリ | 16GB | 32GB |
SSD | 500GB | 2TB |
GPU | Intel Iris Pro Graphics 5200 | NVIDIA GeForce RTX 2070 Super |
WSLのバージョン | WSL1 | WSL2 |
CPUのベンチマーク結果を見ると、今回購入してもらったPCの方が約2.2倍良いので、プログラム実行速度は爆速化するはず!
プログラム実行速度の計測方法
コンパイル→実行→結果のグラフ作成の処理内容を記載したシェルスクリプト実行時に、timeコマンドをつけて計測しました。
マシンによる性能差を見たいだけなのと、機密情報に関わる為、実行したプログラムのソースコードは非公開とさせて頂きます。また、普段は100回くらい連続で回していますが、今回は1回分としました。
プログラム実行速度比較(1回目)
timeコマンド結果の"real"の数値を抜き出したのが、以下の表となります。
今まで使用していたPC | 今回購入してもらったPC | |
---|---|---|
実行速度 | 0m26.997s | 1m43.908s |
…あれ???今回購入してもらったPCの方が約3.8倍遅いぞ...???
原因っぽいものの特定と、プログラム実行速度比較(2回目)
上記の問題が生じてから数日間は、原因が一切不明で、詰んでいました。
今まで使用していたPC上では、VSCodeの既存のターミナルをWSL1にしていた為、今回購入してもらったPC上でも同様の環境にしようと思い、こちらの記事をぼんやりと読んでいたところ、WSL2ではWindows側のファイルアクセスが悪いのでは?と言う考えが出てきました。
1回目の実行速度比較の際は、2台のPCとも、「WSL上からWindows側のファイルにアクセスして実行」していたのですが、今回購入してもらったPCの方で、試しに「WSL2上で実行」してみた結果、以下の通りとなりました。
今まで使用していたPC | 今回購入してもらったPC | |
---|---|---|
実行環境 | WSL1上からWindows側のファイルにアクセスして実行 | WSL2上で実行 |
実行速度 | 0m26.997s | 0m11.240s |
やっと、今回購入してもらったPCの方が約2.4倍速くなりました!!!
現時点で取れる対策
自分は普段、Windows側でソースコードの管理をしている為、WSL側でソースコードの管理をする事に抵抗があります。その為、WSL上で実行した後に、関連ファイルをWindows側にコピーするしか対策は無いのかなぁと思っています。
Author And Source
この問題について(WSL1と同じ感覚でWSL2を使ったらプログラム実行速度が爆遅化した), 我々は、より多くの情報をここで見つけました https://qiita.com/FluffyMadeCafe/items/86fb543ef34b6547344b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .