Windows上で動作するフリーの開発環境 CygwinとMinGWに関する相談スレッドです。
過去スレ:
Cygwin + MinGW + GCC 相談室 Part 7
http://peace.2ch.net/test/read.cgi/tech/1357019230/
Cygwin + MinGW + GCC 相談室 Part 6
http://toro.2ch.net/test/read.cgi/tech/1304609116/
Cygwin + MinGW + GCC 相談室 Part 5
http://hibari.2ch.net/test/read.cgi/tech/1269400706/
Cygwin + MinGW + GCC 相談室 Part 4
http://pc12.2ch.net/test/read.cgi/tech/1221233882/
cygwin + mingwn + gcc 相談室 Part3
http://pc11.2ch.net/test/read.cgi/tech/1177944767/
cygwin + mingwn + gcc 相談室 Part2
http://pc11.2ch.net/test/read.cgi/tech/1126103347/
cygwin + mingwn + gcc 相談室
http://pc8.2ch.net/test/read.cgi/tech/1058134693/
関連サイト:
Cygwin http://www.cygwin.com/
MinGW http://www.mingw.org/
関連スレッド:
GCCについて part10
http://toro.2ch.net/test/read.cgi/tech/1315026784/
探検
Cygwin + MinGW + GCC 相談室 Part 8
1デフォルトの名無しさん
2014/09/23(火) 00:20:11.40ID:G97CLCj1652デフォルトの名無しさん
2020/04/20(月) 09:12:16.95ID:aqwTNz7b Windows 10, WSL, Ubuntu 18.04 で、
VSCode の拡張機能、Remote WSL も使う
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた
yarn は、Windows側に入れて、WSL から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト
anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える。
~/.bashrc に、下の2行を追加するだけで、各言語ごとに追加しないでも良い
export PATH="$HOME/.anyenv/bin:$PATH"
eval "$(anyenv init -)"
VSCode の拡張機能、Remote WSL も使う
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた
yarn は、Windows側に入れて、WSL から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト
anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える。
~/.bashrc に、下の2行を追加するだけで、各言語ごとに追加しないでも良い
export PATH="$HOME/.anyenv/bin:$PATH"
eval "$(anyenv init -)"
653デフォルトの名無しさん
2020/04/20(月) 09:13:30.71ID:lEczCUui MSYS+MinGW、仮想マシン+Linuxって感じでWSLの入る余地がない
WSL+MinGWツールチェーンにすれば仮想マシンすら必要ないって考えもあるけど
やっぱり仮想マシンは手放せないからWindows側はMSYSでいいやってなる
WSL+MinGWツールチェーンにすれば仮想マシンすら必要ないって考えもあるけど
やっぱり仮想マシンは手放せないからWindows側はMSYSでいいやってなる
654デフォルトの名無しさん
2020/04/20(月) 10:24:18.82ID:HdM6J8YZ >>653
同じく
同じく
655デフォルトの名無しさん
2020/04/20(月) 13:58:21.58ID:2UEzrf8e656デフォルトの名無しさん
2020/04/20(月) 14:00:46.58ID:2UEzrf8e 仮想マシンは手放せないけど、仮想マシンはほぼテスト環境になった
作ったアプリを動かすための環境
普段の開発でテストのためだけの環境を使う気にならない
起動重いしメモリ食うし
作ったアプリを動かすための環境
普段の開発でテストのためだけの環境を使う気にならない
起動重いしメモリ食うし
657デフォルトの名無しさん
2020/04/20(月) 14:10:17.96ID:X6dUog3k 起動したままで良い
メモリ喰うのは諦めろ
メモリ喰うのは諦めろ
658デフォルトの名無しさん
2020/04/20(月) 14:16:53.62ID:agWbeiM9 msys+mingw入れて何がしたい?
ffmpegをビルドしたいから
ffmpegをビルドしたいから
659デフォルトの名無しさん
2020/04/20(月) 14:17:05.96ID:2UEzrf8e ああ、なるほど。テスト環境じゃないから
一つしか仮想マシンがないんだな
それぞれ微妙に異なるからテスト環境(仮想マシン)は
プロジェクトごとに必要なんだよ
一つしか仮想マシンがないんだな
それぞれ微妙に異なるからテスト環境(仮想マシン)は
プロジェクトごとに必要なんだよ
660デフォルトの名無しさん
2020/04/20(月) 14:18:38.31ID:2UEzrf8e >>658
LinuxツールのWindowsネイティブ版への移植以外になんかあるの?
ffmpegもそうだし
まあ全員がWSLをインストールしてるとは限らないから
Windowsネイティブ版を作る意味はあるだろうね。
LinuxツールのWindowsネイティブ版への移植以外になんかあるの?
ffmpegもそうだし
まあ全員がWSLをインストールしてるとは限らないから
Windowsネイティブ版を作る意味はあるだろうね。
661デフォルトの名無しさん
2020/04/20(月) 17:04:12.19ID:lEczCUui だから何としか言えねぇ
662デフォルトの名無しさん
2020/04/20(月) 21:50:47.06ID:vn9gJe4h0 cygwin
mingw
wsl
作ったアプリの動作時オーバーヘッド(動作速度)が大きい順に並べて
mingw
wsl
作ったアプリの動作時オーバーヘッド(動作速度)が大きい順に並べて
663デフォルトの名無しさん
2020/04/20(月) 21:54:06.18ID:iSOfvkhv c
w
m
w
m
664デフォルトの名無しさん
2020/04/20(月) 21:57:01.49ID:vn9gJe4h0 マジかよWSLに失望しました。窓から投げ捨ててMinGWに乗り換えます
665デフォルトの名無しさん
2020/04/20(月) 23:38:08.46ID:pVOiahav いやいや君なんでも即断すぎやろw
666デフォルトの名無しさん
2020/04/21(火) 05:17:44.95ID:Lx1iEb8v667デフォルトの名無しさん
2020/04/22(水) 00:52:15.00ID:nnh+EV8P mingw-w64-〇〇〇-yasm-1.3.0-4 (は32bit用はi686、64bit用はx86_64)
yasm-1.3.0-2
どう違うの?
入れるのはどっち?
yasm-1.3.0-2
どう違うの?
入れるのはどっち?
668デフォルトの名無しさん
2020/04/22(水) 09:41:29.70ID:UQ7whF8j 前者はMinGW-w64のDLLが必要。いわゆるネイティブアプリ
後者はMSYSのDLLと場合によってはターミナルエミュレータが必要
どちらを使うかは環境と用途次第
後者はMSYSのDLLと場合によってはターミナルエミュレータが必要
どちらを使うかは環境と用途次第
669デフォルトの名無しさん
2020/04/22(水) 09:46:40.84ID:O/jaLKmb おま環
670デフォルトの名無しさん
2020/04/23(木) 21:18:54.36ID:4ZqPhGA2 msys2を入れてpacman -Syuをやった後、home/PC名のフォルダに、.gnupgというフォルダがあるんだけど、これって消しちゃダメ?
671デフォルトの名無しさん
2020/04/26(日) 14:07:46.35ID:XGLrD3LC0 え!?WSLってそのままでは音流せないんですか!?
672デフォルトの名無しさん
2020/04/26(日) 15:10:53.48ID:O/ywVmO1 gnupgってGPGだろ
GNU製のPGP暗号化と復号プログラム
GNU製のPGP暗号化と復号プログラム
673デフォルトの名無しさん
2020/04/26(日) 16:13:34.86ID:D7tlSM02 >>671
PulseAudio使えばいいだけじゃね?
PulseAudio使えばいいだけじゃね?
674デフォルトの名無しさん
2020/04/27(月) 04:32:34.19ID:xcrAouIA0 ではWSLは、デフォルトでは音すら流せない杜撰な造りをしていると認めるんですか?
675デフォルトの名無しさん
2020/04/27(月) 06:42:04.21ID:4F1K1x/3 単にサウンドデバイスを実装してないだけだよ
設計は良く出来てるので実装しようと思えば出来るだろうが
利用者が求めてない機能なので優先度が低い
WSLの利用者は開発者だからね。開発者が欲しい機能が最優先
設計は良く出来てるので実装しようと思えば出来るだろうが
利用者が求めてない機能なので優先度が低い
WSLの利用者は開発者だからね。開発者が欲しい機能が最優先
676デフォルトの名無しさん
2020/04/27(月) 06:46:16.14ID:4F1K1x/3 あ、もしWSLが開発者向けの機能を優先してるのを知った上で
WSLは駄目だって印象を与えようとした書き込みだったらごめん、邪魔したね
そうでないなら音ならWindowsで鳴らせばいいと気づければOKだよ
音を鳴らす程度のためにWSLは不要だからね
WSLは駄目だって印象を与えようとした書き込みだったらごめん、邪魔したね
そうでないなら音ならWindowsで鳴らせばいいと気づければOKだよ
音を鳴らす程度のためにWSLは不要だからね
677デフォルトの名無しさん
2020/04/27(月) 17:16:43.92ID:cdGyQVmm >>653
wslはwslのコマンドラインからlinuxバイナリもwindowsバイナリも動く優れものなんだよ
wslはwslのコマンドラインからlinuxバイナリもwindowsバイナリも動く優れものなんだよ
678デフォルトの名無しさん
2020/04/27(月) 18:06:23.13ID:AD9YXzU7679デフォルトの名無しさん
2020/04/27(月) 19:44:31.43 Windowsのコマンドプロンプト側からWSLのディレクトリに入っていけるの?
680デフォルトの名無しさん
2020/04/27(月) 19:55:00.34ID:AD9YXzU7 >>679
それはコマンドプロンプト自体の問題で、こいつは古いアプリなのでUNCパスに対応していない
UNCパス(\\ではじまるネットワークフォルダのパス)を扱えるツールを使う必要がある
WSLのディレクトリに対応してるかというよりも
ネットワークフォルダに対応しているかという話に近い
PowerShellはUNCパスに対応しているからWSLのディレクトリにも入れる
コマンドプロンプトから実行するコマンドもUNCパスに対応していれば参照できる
またネットワークフォルダはドライブに割り当てることが出来るので
ドライブに割り当てればコマンドコマンドからWSLのディレクトリに入ることも出来る
それはコマンドプロンプト自体の問題で、こいつは古いアプリなのでUNCパスに対応していない
UNCパス(\\ではじまるネットワークフォルダのパス)を扱えるツールを使う必要がある
WSLのディレクトリに対応してるかというよりも
ネットワークフォルダに対応しているかという話に近い
PowerShellはUNCパスに対応しているからWSLのディレクトリにも入れる
コマンドプロンプトから実行するコマンドもUNCパスに対応していれば参照できる
またネットワークフォルダはドライブに割り当てることが出来るので
ドライブに割り当てればコマンドコマンドからWSLのディレクトリに入ることも出来る
681デフォルトの名無しさん
2020/04/27(月) 19:56:20.68ID:AD9YXzU7 ちなみにcdの代わりにpushdを使えば
コマンドコマンドからUNCパスに移動できる
一時的にドライブを割り当てているだけだが
コマンドコマンドからUNCパスに移動できる
一時的にドライブを割り当てているだけだが
682デフォルトの名無しさん
2020/04/27(月) 22:41:42.75 詳しい情報サンクス!
これなら皆がWSLへl移行するのもわかる気がする
これなら皆がWSLへl移行するのもわかる気がする
683デフォルトの名無しさん
2020/04/27(月) 23:26:27.00ID:hGgbh3Gh windowsのSSHサーバ立ち上げてwslをシェルにできるのは便利
PowerShell極めてるひとなら不要かもしれんけどね
PowerShell極めてるひとなら不要かもしれんけどね
684デフォルトの名無しさん
2020/04/28(火) 10:33:28.83ID:gG+m5xpc MSYS2とWSLって共存出来るんですか?
685デフォルトの名無しさん
2020/04/28(火) 10:52:09.80ID:zAZN/f3s マジレスするとmsys使ってて問題無ければwsl要らない
686デフォルトの名無しさん
2020/04/28(火) 17:09:56.15ID:7TaGv6sC >>684
共存できる。msys2はただのアプリでしかないから
>>685
msysの問題はUbuntuと同じようなメンテナンス力を期待できないところかな
WSLは本物のUbuntuのディストリのパッケージが使われてるので
Ubuntuとほぼ同等にメンテナンスされてると思っていい
だけどmsysは(Ubuntuと比べたら小さな)開発者が対応してるパッケージしか使えない
しかもLinuxと完全互換じゃないからmsysでソースコードからコンパイルしようとしても
動くとは限らない。WSLを使えばそういった煩わしさから開放される。
msysはWSLを入れてない人のためのWindows用アプリを作るためのものだよ
開発者がLinuxの代わりとして使うものじゃない
共存できる。msys2はただのアプリでしかないから
>>685
msysの問題はUbuntuと同じようなメンテナンス力を期待できないところかな
WSLは本物のUbuntuのディストリのパッケージが使われてるので
Ubuntuとほぼ同等にメンテナンスされてると思っていい
だけどmsysは(Ubuntuと比べたら小さな)開発者が対応してるパッケージしか使えない
しかもLinuxと完全互換じゃないからmsysでソースコードからコンパイルしようとしても
動くとは限らない。WSLを使えばそういった煩わしさから開放される。
msysはWSLを入れてない人のためのWindows用アプリを作るためのものだよ
開発者がLinuxの代わりとして使うものじゃない
687デフォルトの名無しさん
2020/04/28(火) 17:14:36.86ID:qC7CqvMj ホームパスを一緒にすると色々弊害出そう
688デフォルトの名無しさん
2020/04/28(火) 17:30:05.30ID:7TaGv6sC689デフォルトの名無しさん
2020/04/28(火) 18:17:52.10ID:eCWBo+Hl 色々と混ぜたいからホームディレクトリを一緒にするんだろ
そうじゃなければ最初から分けとけばいいだけの話だ
そうじゃなければ最初から分けとけばいいだけの話だ
690デフォルトの名無しさん
2020/04/28(火) 18:20:54.27ID:7TaGv6sC691デフォルトの名無しさん
2020/04/28(火) 18:21:10.90ID:7TaGv6sC 「色々」と混ぜたいならその「色々」だけを混ぜればいいじゃん
692デフォルトの名無しさん
2020/04/29(水) 09:35:11.34ID:TuLha3Ht 混ぜるな危険
693デフォルトの名無しさん
2020/04/29(水) 09:46:08.06 Microsoft Store に WSL Ubuntu 20.04 LTS 出てるけど、まだ入れない方がいいんですか
694デフォルトの名無しさん
2020/04/29(水) 10:27:50.31ID:Cpi+Il5+ 早くても、8月以降に、20.04.1 とか修正版が出た後。
1年後でも良い
Ruby のirb では、MSYS2/MinGW で、日本語入力でバグるから、
WSL の方が、互換性が高い
日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv で、
色々なバージョンも入れられる
VSCode も、Remote WSL 拡張機能で、Linux 側へアクセスできる
1年後でも良い
Ruby のirb では、MSYS2/MinGW で、日本語入力でバグるから、
WSL の方が、互換性が高い
日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv で、
色々なバージョンも入れられる
VSCode も、Remote WSL 拡張機能で、Linux 側へアクセスできる
695デフォルトの名無しさん
2020/04/29(水) 10:38:59.10ID:Cpi+Il5+ >>679
コマンドプロンプト・PowerShell で、wsl と入力すれば、WSLが起動する
最も良いのは、Linux 側のフォルダのショートカットをデスクトップにでも作って、
そのフォルダの右クリックメニューから、VSCode を起動する
これで、WSLを起動して、Linux側のプロジェクトを開ける
コマンドプロンプト・PowerShell で、wsl と入力すれば、WSLが起動する
最も良いのは、Linux 側のフォルダのショートカットをデスクトップにでも作って、
そのフォルダの右クリックメニューから、VSCode を起動する
これで、WSLを起動して、Linux側のプロジェクトを開ける
696デフォルトの名無しさん
2020/04/29(水) 11:51:03.18ID:Jemg3aCN wsl, opensuse leapにmingw64入れてクロスビルドしてる。
configure作って--hostでmingw指定すれば楽勝すぎて屁が出そう
configure作って--hostでmingw指定すれば楽勝すぎて屁が出そう
697デフォルトの名無しさん
2020/04/29(水) 11:51:38.68 自分が使っているWSLが1なのか2なのか知る方法は?
698デフォルトの名無しさん
2020/04/30(木) 13:35:41.83ID:HbyVq09Q openSUSE Leap 15.1用のmingw配布消えとるやん
くそがー
くそがー
699デフォルトの名無しさん
2020/04/30(木) 17:32:57.91 そもそもWSL2はエンスー向けか
普通の人は1が入ってるのか
普通の人は1が入ってるのか
700デフォルトの名無しさん
2020/05/02(土) 23:21:47.63ID:nkPqW+JC MinGWっていうかGitBash環境なんだけど
WSL1より2倍ぐらいシェルスクリプトが遅いんだよね
どこが原因かわからんけどこんなもん?
なにか大きな差がでるポイントでもあるんかね?
WSL1より2倍ぐらいシェルスクリプトが遅いんだよね
どこが原因かわからんけどこんなもん?
なにか大きな差がでるポイントでもあるんかね?
701デフォルトの名無しさん
2020/05/03(日) 03:37:53.54ID:HUz+EFHq WSL1 (bash 4.4.20) だと
$ time bash -c 'i=0; while [ $i -lt 1000000 ]; do : $((i+=1)); done'
real 0m6.317s
user 0m6.313s
sys 0m0.000s
MinGW64 (bash 4.4.23) だと
$ time bash -c 'i=0; while [ $i -lt 1000000 ]; do : $((i+=1)); done'
real 0m15.053s
user 0m15.000s
sys 0m0.030s
Cygwin (bash 4.4.12) だと
$ time bash -c 'i=0; while [ $i -lt 1000000 ]; do : $((i+=1)); done'
real 0m13.897s
user 0m13.858s
sys 0m0.046s
うーん、こんな単純なコードで2倍の差がでてるから
もうこれはどうしようもないのか?
$ time bash -c 'i=0; while [ $i -lt 1000000 ]; do : $((i+=1)); done'
real 0m6.317s
user 0m6.313s
sys 0m0.000s
MinGW64 (bash 4.4.23) だと
$ time bash -c 'i=0; while [ $i -lt 1000000 ]; do : $((i+=1)); done'
real 0m15.053s
user 0m15.000s
sys 0m0.030s
Cygwin (bash 4.4.12) だと
$ time bash -c 'i=0; while [ $i -lt 1000000 ]; do : $((i+=1)); done'
real 0m13.897s
user 0m13.858s
sys 0m0.046s
うーん、こんな単純なコードで2倍の差がでてるから
もうこれはどうしようもないのか?
702デフォルトの名無しさん
2020/05/03(日) 04:04:18.44ID:HUz+EFHq 比較とか計算が遅いのかと思ってやってみたけど
この比率は変わらない
WSL1
$ time bash -c 'for i in $(seq 1000000); do :; done'
real 0m2.159s
user 0m1.828s
sys 0m0.359s
Cygwin
$ time bash -c 'for i in $(seq 1000000); do :; done'
real 0m4.222s
user 0m3.889s
sys 0m0.341s
MinGW64
$ time bash -c 'for i in $(seq 1000000); do :; done'
real 0m4.821s
user 0m4.342s
sys 0m0.436s
WSL1 → Cygwin(2倍ぐらい遅い)→MinGW(さらに10%遅い)
こんな傾向がある。ファイルシステムは関係ないはず
やってるのはCPUの処理だけなはずなんだけどなぁ
この比率は変わらない
WSL1
$ time bash -c 'for i in $(seq 1000000); do :; done'
real 0m2.159s
user 0m1.828s
sys 0m0.359s
Cygwin
$ time bash -c 'for i in $(seq 1000000); do :; done'
real 0m4.222s
user 0m3.889s
sys 0m0.341s
MinGW64
$ time bash -c 'for i in $(seq 1000000); do :; done'
real 0m4.821s
user 0m4.342s
sys 0m0.436s
WSL1 → Cygwin(2倍ぐらい遅い)→MinGW(さらに10%遅い)
こんな傾向がある。ファイルシステムは関係ないはず
やってるのはCPUの処理だけなはずなんだけどなぁ
703デフォルトの名無しさん
2020/05/03(日) 05:18:19.65ID:1PSoskYy 調べるとradeonのドライバを切れとか書いてあるけど…
704デフォルトの名無しさん
2020/05/03(日) 05:22:33.02ID:HUz+EFHq >>703
使ってないよw
使ってないよw
705デフォルトの名無しさん
2020/05/03(日) 05:24:47.68ID:HUz+EFHq radeonの話は画面に出力が絡むなら
関係ありそうな気もするけど、それ以外でも発生するんだろうかね
あとHOMEは MinGWは /c/Users/myname
Cygwinは/home/mynameだ
関係ありそうな気もするけど、それ以外でも発生するんだろうかね
あとHOMEは MinGWは /c/Users/myname
Cygwinは/home/mynameだ
706デフォルトの名無しさん
2020/05/03(日) 05:26:40.40ID:HUz+EFHq よく見ると大きな差があるのはuser空間だから
コンパイルオプションが違ってるとかなのかな?
コンパイルオプションが違ってるとかなのかな?
707デフォルトの名無しさん
2020/05/03(日) 05:38:01.14ID:1PSoskYy seq使うんじゃなくて{1..1000000}の方がいいかもね
708デフォルトの名無しさん
2020/05/03(日) 06:00:40.65ID:HUz+EFHq >>707
つってもわずか一回だからなぁ。やってみてもいいけど
WSL1
$ time bash -c 'for i in {1..1000000}; do :; done'
real 0m1.710s
user 0m1.547s
sys 0m0.156s
Cygwin
$ time bash -c 'for i in {1..1000000}; do :; done'
real 0m4.854s
user 0m4.811s
sys 0m0.108s
MinGW64
$ time bash -c 'for i in {1..1000000}; do :; done'
real 0m4.934s
user 0m4.843s
sys 0m0.109s
あとあれから少しわかったのはMinGWは何回か繰り返せば
Cygwinに迫るのでファイル読み込み?とかも少し関連してるんだと思う
が2倍以上かかることに変わりはない
cygwin.dll?とかが遅いのかもな。MinGWでも使ってるんじゃなかったっけ?
つってもわずか一回だからなぁ。やってみてもいいけど
WSL1
$ time bash -c 'for i in {1..1000000}; do :; done'
real 0m1.710s
user 0m1.547s
sys 0m0.156s
Cygwin
$ time bash -c 'for i in {1..1000000}; do :; done'
real 0m4.854s
user 0m4.811s
sys 0m0.108s
MinGW64
$ time bash -c 'for i in {1..1000000}; do :; done'
real 0m4.934s
user 0m4.843s
sys 0m0.109s
あとあれから少しわかったのはMinGWは何回か繰り返せば
Cygwinに迫るのでファイル読み込み?とかも少し関連してるんだと思う
が2倍以上かかることに変わりはない
cygwin.dll?とかが遅いのかもな。MinGWでも使ってるんじゃなかったっけ?
709デフォルトの名無しさん
2020/05/03(日) 07:25:18.35ID:69WKUEPM710デフォルトの名無しさん
2020/05/03(日) 07:38:38.22ID:HUz+EFHq >>709
いや比較しないと意味ないだろw
いや比較しないと意味ないだろw
711デフォルトの名無しさん
2020/05/03(日) 07:39:48.20ID:HUz+EFHq ちなみに俺のはCPUはi7な
Cygwin、MinGWを実行したら
それの2倍かかるはず
Cygwin、MinGWを実行したら
それの2倍かかるはず
712デフォルトの名無しさん
2020/05/03(日) 21:39:24.17ID:ADBK+oPb cygwinはforkがヘボいから遅い
MinGWといいつつmsysのbashやろ
これもforkがcygwinゆずりだから遅い。
wslもfork遅いと思うけど。
virtual boxにwindowsファイルを共有させたものの方が実は速い。
純粋にwindowsとLinuxの環境を同居させたきゃ仮想PC
Linuxでwindows binaryをクロスビルド、テストまでしたけりゃwsl
MinGWといいつつmsysのbashやろ
これもforkがcygwinゆずりだから遅い。
wslもfork遅いと思うけど。
virtual boxにwindowsファイルを共有させたものの方が実は速い。
純粋にwindowsとLinuxの環境を同居させたきゃ仮想PC
Linuxでwindows binaryをクロスビルド、テストまでしたけりゃwsl
713デフォルトの名無しさん
2020/05/03(日) 21:47:49.28ID:v0W4oGhj まあ名前解決のところと passwd/group の設定はしといた方がいいね
714デフォルトの名無しさん
2020/05/03(日) 23:40:13.01ID:sXSeyux8715デフォルトの名無しさん
2020/05/04(月) 02:27:10.75ID:R/PLl+Gn 元々、bash が、ループ向きではないから、dash などを使う
for は遅いから、while などを使う。
実行時間中のほとんどが、フォークの時間
ループは、awk, perl, ruby などでは、0.1 秒も掛からない。
単一プロセス中の処理だから
for は遅いから、while などを使う。
実行時間中のほとんどが、フォークの時間
ループは、awk, perl, ruby などでは、0.1 秒も掛からない。
単一プロセス中の処理だから
716デフォルトの名無しさん
2020/05/04(月) 03:06:12.15ID:szliIti6 あ、dashの結果書くの忘れてた。dashは速いから数を10倍にしてる
傾向は一緒。ただのループなのに2倍ぐらいの差が出てしまう
WSL1
$ time dash -c 'for i in $(seq 10000000); do :; done'
real 0m4.480s
user 0m2.875s
sys 0m2.047s
Cygwin
$ time dash -c 'for i in $(seq 10000000); do :; done'
real 0m7.598s
user 0m6.531s
sys 0m1.296s
MinGW64
$ time dash -c 'for i in $(seq 10000000); do :; done'
real 0m7.905s
user 0m6.905s
sys 0m1.155s
傾向は一緒。ただのループなのに2倍ぐらいの差が出てしまう
WSL1
$ time dash -c 'for i in $(seq 10000000); do :; done'
real 0m4.480s
user 0m2.875s
sys 0m2.047s
Cygwin
$ time dash -c 'for i in $(seq 10000000); do :; done'
real 0m7.598s
user 0m6.531s
sys 0m1.296s
MinGW64
$ time dash -c 'for i in $(seq 10000000); do :; done'
real 0m7.905s
user 0m6.905s
sys 0m1.155s
717デフォルトの名無しさん
2020/05/04(月) 03:06:42.72ID:szliIti6 >>715
どこでフォークしてるというの?
どこでフォークしてるというの?
718デフォルトの名無しさん
2020/05/04(月) 03:16:08.18ID:szliIti6 awkは更に速いから、更に10倍にしてる。これなら理解できるな。
CygwinとMinGW64がWSL1より少し遅いのは起動時のパフォーマンスの差だろう
ってことはシェルスクリプトだと、なにか遅くなる処理をやってるってことか
整数型じゃないとか?
WSL1
$ time awk 'BEGIN{i=0;for(i=0;i<100000000;i++);}'
real 0m4.121s
user 0m4.109s
sys 0m0.016s
Cygwin
time awk 'BEGIN{i=0;for(i=0;i<100000000;i++);}'
real 0m4.978s
user 0m4.875s
sys 0m0.031s
MinGW64
$ time awk 'BEGIN{i=0;for(i=0;i<100000000;i++);}'
real 0m4.586s
user 0m4.562s
sys 0m0.015s
CygwinとMinGW64がWSL1より少し遅いのは起動時のパフォーマンスの差だろう
ってことはシェルスクリプトだと、なにか遅くなる処理をやってるってことか
整数型じゃないとか?
WSL1
$ time awk 'BEGIN{i=0;for(i=0;i<100000000;i++);}'
real 0m4.121s
user 0m4.109s
sys 0m0.016s
Cygwin
time awk 'BEGIN{i=0;for(i=0;i<100000000;i++);}'
real 0m4.978s
user 0m4.875s
sys 0m0.031s
MinGW64
$ time awk 'BEGIN{i=0;for(i=0;i<100000000;i++);}'
real 0m4.586s
user 0m4.562s
sys 0m0.015s
719715
2020/05/04(月) 04:54:04.28ID:R/PLl+Gn for がコマンドだから、フォークされるのだろ。
だから、シェルスクリプトでは、while を使えと言われる
bash よりも、dash を使う。
それ以上は、awk, perl, ruby
だから、シェルスクリプトでは、while を使えと言われる
bash よりも、dash を使う。
それ以上は、awk, perl, ruby
720デフォルトの名無しさん
2020/05/04(月) 05:14:01.45ID:szliIti6 whileを使うと遅いからforに変えたのですが?
forを使った>>716とループ回数は同じ
WSL1
$ time dash -c 'for i in $(seq 10000000); do :; done'
real 0m4.480s
user 0m2.875s
sys 0m2.047s
$ time dash -c 'i=0; while [ $i -lt 10000000 ]; do i=$((i+1)); done'
real 0m15.811s
user 0m15.766s
sys 0m0.016s
Cygwin
$ time dash -c 'for i in $(seq 10000000); do :; done'
real 0m7.598s
user 0m6.531s
sys 0m1.296s
$ time dash -c 'i=0; while [ $i -lt 10000000 ]; do i=$((i+1)); done'
real 0m26.173s
user 0m26.109s
sys 0m0.031s
MinGWはCygwinと大差ないので省略
forを使った>>716とループ回数は同じ
WSL1
$ time dash -c 'for i in $(seq 10000000); do :; done'
real 0m4.480s
user 0m2.875s
sys 0m2.047s
$ time dash -c 'i=0; while [ $i -lt 10000000 ]; do i=$((i+1)); done'
real 0m15.811s
user 0m15.766s
sys 0m0.016s
Cygwin
$ time dash -c 'for i in $(seq 10000000); do :; done'
real 0m7.598s
user 0m6.531s
sys 0m1.296s
$ time dash -c 'i=0; while [ $i -lt 10000000 ]; do i=$((i+1)); done'
real 0m26.173s
user 0m26.109s
sys 0m0.031s
MinGWはCygwinと大差ないので省略
721715
2020/05/04(月) 07:28:52.02ID:R/PLl+Gn 8年前のシェルスクリプトの本には、
10万行の処理で、
for : 9分
while : 5秒
awk/perl : 0.1秒
10万行の処理で、
for : 9分
while : 5秒
awk/perl : 0.1秒
722715
2020/05/04(月) 07:33:20.66ID:R/PLl+Gn $((i+1)) という部分が、コマンドだから遅いのだろう
ほとんどが、そのフォーク時間
ほとんどが、そのフォーク時間
723デフォルトの名無しさん
2020/05/04(月) 07:37:26.49ID:iIYyf/rd せいぜいbashのサブコマンドで、forkしとらん気がする
ただマルチスレッドは使ってるかも知れんし、その際のメモリ操作はなんか性能の問題があった気はする
ただマルチスレッドは使ってるかも知れんし、その際のメモリ操作はなんか性能の問題があった気はする
724デフォルトの名無しさん
2020/05/04(月) 07:49:25.72ID:szliIti6 >>722
コマンドじゃないよ
コマンドじゃないよ
725デフォルトの名無しさん
2020/05/04(月) 18:39:29.61ID:EvcVp/Zr $(())内でiを更新できることから分かるようにforkしていないし、少なくともbashとdashはシングルスレッド
linux上で
ltrace -f bash -c 'for i in {1..1000000}; do :; done'
したら、mallocを何度も呼んでいるようだから、ヒープ操作関係が遅い可能性はある
実際、linux上でもmallocの実装をglibcのからjemallocに切り替えたら上のループが2割近く速くなった
linux上で
ltrace -f bash -c 'for i in {1..1000000}; do :; done'
したら、mallocを何度も呼んでいるようだから、ヒープ操作関係が遅い可能性はある
実際、linux上でもmallocの実装をglibcのからjemallocに切り替えたら上のループが2割近く速くなった
726デフォルトの名無しさん
2020/05/06(水) 17:53:36.31ID:cyb3WwF6 wsl2は仮想マシンになるのか
windowsバイナリ実行できるのかな
windowsバイナリ実行できるのかな
727デフォルトの名無しさん
2020/05/06(水) 19:33:37.07ID:DK8FW5YB 以下のパッケージ、入れようとすると対象が見つからないと出るんだけど・・・
dlfcn
libpng
tools-git
jq
clang
dlfcn
libpng
tools-git
jq
clang
728デフォルトの名無しさん
2020/05/06(水) 20:42:44.30ID:Fjn1hDTG WSL, Ubuntu 18.04 には、jq もあるけど
apt-cache show jq
メンテナー : 陳昌倬
apt-cache show jq
メンテナー : 陳昌倬
729デフォルトの名無しさん
2020/05/06(水) 22:45:14.75ID:UqyV1t7H730デフォルトの名無しさん
2020/05/11(月) 23:46:54.34ID:77t5bXxM GCC 10.1まだですか
731デフォルトの名無しさん
2020/05/12(火) 00:26:10.57ID:6XbzcR0E ついにGCCのバージョンも10まできたか・・
732デフォルトの名無しさん
2020/05/12(火) 01:18:10.18ID:yS+J4vmz GCCじゅにや
733デフォルトの名無しさん
2020/05/12(火) 07:09:28.82ID:zxRznJOz カバにダンスをさせるのは
あまり楽しくないそうだ
あまり楽しくないそうだ
734デフォルトの名無しさん
2020/05/14(木) 00:17:24.56ID:rBW8Yffw MSYS2でWin32アプリ作ってみようとチャレンジ中
735デフォルトの名無しさん
2020/05/14(木) 10:05:25.88ID:tvxDWcUo きばれ
tdm-gcc (64)
tdm-gcc (64)
736デフォルトの名無しさん
2020/05/14(木) 10:09:03.48ID:tvxDWcUo737デフォルトの名無しさん
2020/05/14(木) 10:17:17.31ID:HbCKurWZ Ruby はやめとけ
738デフォルトの名無しさん
2020/05/22(金) 14:26:50.74ID:DztlkuPK msys2をサイレントインストールするにはどうしたら良いですか?
739デフォルトの名無しさん
2020/05/28(木) 04:57:53.37 WSL2で 9PFs 経由でWin32側のファイルを読み込むの、なんでこんな遅いの?
740デフォルトの名無しさん
2020/05/28(木) 05:10:55.81ID:X/662gLn 仮想マシン経由だからでは?
だからWSL1も引き続き開発してるわけで
だからWSL1も引き続き開発してるわけで
741デフォルトの名無しさん
2020/05/29(金) 02:44:46.36ID:o1TI0Bdi そろそろ更新してくれ
742デフォルトの名無しさん
2020/06/23(火) 03:13:01.66ID:1wsAa41I 新版まだですか〜
743デフォルトの名無しさん
2020/06/23(火) 04:40:31.79ID:TI7IUkkN あきらめれ。Cygwinはもうお役御免
744デフォルトの名無しさん
2020/06/23(火) 05:19:55.35ID:AJ4z3x9t 同意。mingwは存在意義があるけど、cygwinは役割を終えた。
745デフォルトの名無しさん
2020/06/23(火) 07:12:20.62ID:lBX+9FOg cygwin
ついに死す、か・・
ついに死す、か・・
746デフォルトの名無しさん
2020/06/23(火) 08:06:26.09ID:oj2a+YQY 大往生だね
747デフォルトの名無しさん
2020/06/23(火) 12:40:28.65ID:AJ4z3x9t mingwは「Git For Windows」のバンドルモジュールとしてしぶとく生き残る。
cygwinはdll依存をなくしてmingwに統合されていくでしょ。
cygwinはdll依存をなくしてmingwに統合されていくでしょ。
748デフォルトの名無しさん
2020/06/23(火) 13:37:46.90ID:IV3AROMx それを言ったらGit Bashはmsys2のbashだが、bashがmingwに移植されるとは思えんな
749デフォルトの名無しさん
2020/06/23(火) 13:44:06.97ID:oj2a+YQY gcc -staticがデフォじゃないのがよくわからん
じゃあMinGWの立ち位置って何よって
じゃあMinGWの立ち位置って何よって
750デフォルトの名無しさん
2020/06/23(火) 13:57:09.75ID:4kHZmTBE751デフォルトの名無しさん
2020/06/23(火) 14:46:14.01ID:ORgy0fyK bash使いたいならbusybox-w32を使えばいいじゃない
752デフォルトの名無しさん
2020/06/23(火) 18:04:53.62ID:IV3AROMx MinGWの立ち位置?
Win32アプリをビルドできるGCC環境
Win32アプリをビルドできるGCC環境
レスを投稿する
ニュース
- 【外交】元台湾総統・馬英九氏、高市首相発言に「台湾を危険にさらす」台湾海峡の問題は「両岸の中国人が自ら話し合うべき」★2 [1ゲットロボ★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★8 [ぐれ★]
- 「母の部屋に安倍氏が表紙の機関誌が」「(安倍氏が被害者なのは)不思議に思いませんでした」山上被告の妹が証言 [おっさん友の会★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★5 [BFU★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 [ぐれ★]
- 【高市売り】円安、止まらず!凄い勢いで暴落中。157円へ [219241683]
- 安倍晋三銃撃事件ってあったけど
- 1,000万円のBMWに擦ってしまった札幌のガキ、捕らえられてガチで詰む [329329848]
- (´ん`)「公明党、お前だったのか。自民党から国民を守ってくれていたのは...」 [603416639]
- 【悲報】ヤフコメ民「中国が水産物を輸入禁止にするなら、日本国民向けに安く販売すればいい。中国依存から脱するべき」 [153736977]
- 高市が首相になってから進次郎の評価が爆上がりしてる件について
