macOSは同一Macの仮想マシン上のLinuxよりも遅い
macOS上のDocker(OS標準仮想マシン)上のLinuxでbash(5.0.16)を動かした場合 $ docker run -it bash /usr/bin/time -p bash -c 'for i in $(seq 10000); do (:); done' real 5.20 user 2.47 sys 2.46 macOS上ネイティブでbash(Homebrewの5.0.16)を動かした場合 $ /usr/bin/time -p bash -c 'for i in $(seq 10000); do (:); done' real 8.26 user 3.07 sys 5.08 「仮想マシン上のLinux」よりも「macOS上ネイティブ」の方が遅い 開発する分には大きな影響でてねーよ。あまり気にしたこと亡いな。 本番もほぼLinuxだし。 わずかでも劣ってればクソといいたい原理主義の方ですかね >>4 docker使うのは必須じゃないので、むしろdockerを使わないで計測するべきだよ しょーもない話でワロスとしか言えんなぁw そもそもbashなんてそうそう使わないし、これで致命的に困ることあります? 仮想マシンよりも遅いってのがな。Apple何やってるのよ? 曲がりなりにもUnixでしょ?エミュレートしてるわけでもないのに sysはおいといてuserは僅差っぽいから負荷増やして、そんで複数回測っても同じ傾向? ほい、10倍。macOSはUNIXとして使うと遅いんだよ。 $ docker run -it bash /usr/bin/time -p bash -c 'for i in $(seq 100000); do (:); done' real 69.11 user 30.23 sys 36.15 $ /usr/bin/time -p bash -c 'for i in $(seq 100000); do (:); done' real 93.21 user 33.17 sys 61.07 コード見ればわかるだろうが、ファイルにアクセスしてないので ファイルシステムの遅さではない。 sysが遅いことからもわかるようにカーネルが遅いんだよ。 多分プロセスのスケジューリングなのでしょう その影響でuserにオーバヘッドがかかっている macOS側は一杯プロセス抱えているからかな >>11 詳しく調べた人 https://flying-foozy.hatena blog.com/entry/20140527/1401186984 macOSはシステムコール全般が遅い UnixやLinuxの代わりとして使うぐらいなら 仮想マシンを使ったほうが良い forkが遅い が、いまどきforkしまくるか?っていう話 Meltdown対策でKPTIが入ったからシステムコールは全部遅くなった macosのkernelが何もせずにボケぇ〜っとしてるのなら 対して差は出ない 片やmacosとは切り離された環境の中で『速ぇ〜』って感じているのなら その感受性自体に大きな脆弱性が存在する >>13 >が、いまどきforkしまくるか?っていう話 シェル(スクリプト)なんか使うなって話? 途中で話があっちいってるよ システムコールとかforkとか1のスクリプトとの関連示さんと人には分からん bashの実装に踏み込む話でスレとしてはそこまで意図していないと思う 1は一例であって、全般的に遅いと言いたいのでしょう GUI側のバックグラウンドのタスクが常に忙しく動いてるからかもね forkがなにか知らない人がいるみたいだけど、 伝統的にUNIXではマルチスレッドを使うような場合は forkを使っていたんだよ。つまり並列処理=fork スレッドが出来たのはそんなに前じゃないんだよ。 http://www.tsoftware.jp/nptl/ > 古いバージョンの Linux カーネルではマルチスレッドがサポートされておらず、 本物のPOSIXスレッドライブラリ https://srad.jp/story/02/09/21/1613222/ >>25 Linuxはな。 macOSで使われているMachはある意味スレッドを実装したシステムの元祖みたいなもの (なんか変な言い方だが、5chだしw) >>27 だからだよ。 スレッド重視になっていてforkが遅い。 そのせいでUNIXとして使うと遅くなる。 UNIXアプリがビルドできるといってもMacで使うと遅い MacはUNIXとして使わないほうがいい。 体感できる程にforkし倒してるようなもんそんなにあんの? ロードアベレージ高止まりしてるとかでも無いなら限り考えるだけ無駄な話。 >>1 Mac版のDockerって遅いって話じゃん そのDocker上のLinuxより遅いって どゆこと? >>31 Mac版のDockerはファイルシステムが遅い カーネルの処理はmacOSの方が遅い 遅い部分が違っている Linuxならもう新しい中古のノート買っていれた方がいいよ 5千円以下のノートでもすごく快適に動くしカスタマイズも簡単でメモリやハードの交換も簡単 いろいろなディストリビュージョンが存在するからDVDに焼き付けてインストールしてみよう 10個くらい焼いておけばその中の一つがベストマッチすると思うよ パーテションを分割していろいろな種類のLinux系OSを入れられる MACにいれるのはもったいないと思うよ 5千円で実に実用的でなおかつ壊れてもすぐにインストールできるノートができる YOUTUBEみるくらいならこれで充分にOK フォトショップみたいなソフトやオフィスのようなソフトもあるよ 速度は5千円のノートとは思えないほど早い(ディストリビュージョンによるが) うまくいくととってもお得な買い物をしたと思えるよ >>35 そんな感覚だね Linuxノートのいい点 値段が安いので本機と予備機を持てる 本機が壊れても予備機があるので安心 また慣れればすぐにインストールして使うことができる 難点 少し扱いが難しい面が存在する コマンドの扱い方になれる必要が若干ある >>37 正直言うとマックもウインドウズもLinuxもGUIの部分の変化は小さくなっている だからLinuxのGUIの部分がダメと言うことはないんだよな もう似たようなものになっている ホームページ作成とかPHP開発とかくらいならLinuxでいいと思う フォトショップみたいなのもついているし プログラム開発ならLinuxが一番向いてる Linuxの弱点はAdobe等の特定アプリが無いことだが、そういうことを言い出すとMacもアプリは絶望的に足りない Linuxに仮想やマルチブートでWin10入れると幸せになれる >>38 ついでに言うと動画の編集もYoutubeLiveもLinuxでできる さすがにMacbookのいいノートには負けるけど(エンコードの時間)そこそこのものができる Macbook買いたいけどお金ない人にはオススメ 時間がある人はプログラムもできるよ それこそ自分なりのフォトショップが作れちゃうし開発もできるよ >>39 それは逆も真なりというか、自分は仮想でLinuxを動かしてたりもする。 単純にCPUを使う仕事とか、仮想でもそんなに悪くないし。 Linuxでグラフィックドライバとかどうなんだっけ? 動画の処理とかGPUが対応してないと厳しいような。そういう場合は ホストがWinの方がいいような。 機械学習とかはGPU+Linuxでやるけど。 >>1 WindowsだとforkみたいなAPIはない いまどきのOSには必要ないって事だろう >>42 WindowsとBSDやLinuxみたいなUnixライクなOSは元が違うからね BSDにもforkあるしWindosだけが始めから分岐しているだけ >>41 >>1 でもMac上の仮想空間でLinuxを動かしているからね しかしLinuxはアンドロイドを含めると極めて大きな勢力に成長したね 使えるアプリケーションの数も多いし いろいろな分野のアプリケーションが多いし また開発環境が始めから備わっているケースが多いからアプリを作りやすい >>43 元が違うというならmacもそれらとは元が違う machベースのカーネルにBSDレイヤーが乗っかってるだけ >>45 machも始めは4.3BSD のカーネルソースコードを元に修正を加えることで作られたカーネルだけどね 酒屋の息子が開き直ってるなw 暴れてもクリエイターやMacに憧れて拗らせたお前の劣等感は払拭されないぞ 気がつけば50過ぎて発狂しちゃったんだろうが、本当は何かになりたかったんだよな? でも目の前の年老いた親の介護に取り組もうよ。 現実逃避しても20代に戻れる訳じゃないだろ? >>47 話合いで自分の思い通りに進まないと酒屋の息子?とやらに責任転換するんだな MAC信者の中にもこんな卑怯者は存在するんだな アンドロイドでは共通のライブラリをプリロードした特殊プロセスを作っておいて、 アプリの起動はそれをforkして使うことでオーバーヘッドを減らしている。 ライブラリはリードオンリーだからCoWも有効に作用する。 >>43 アンドロイドはいまどきのOSに含めていいでしょうかw >>52 病気のキチガイは相手にしない方がいいよ 精神分裂症かなにかだから >>49 どうなんでしょうね? アンドロイドは今時と言えるのか? Linuxは1991年に、当時フィンランドのヘルシンキ大学の学生であったリーナス・トーバルズが作ったOS BSDの方が先行していたけど権利問題で使えない時期にLinuxがいっきに追い抜いた アンドロイドはLinux系統のOSでセキュリティ面を含めて進化中 Googleが開発 2007年に発表したオープンソースのOS iPhoneも2007年に出てきた アンドロイドのスマホは日本をはじめ中国や韓国でも開発可能 iPhoneのスマホの開発はアップルしかできない 個人的には日本のメーカーを応援する意味合いでアンドロイドも推したい MACもかっこいいけどアップル独占なのが少しネックになる >>44 >しかしLinuxはアンドロイドを含めると極めて大きな勢力に成長したね 端末の台数ということならmacもiPhoneのシェアを考えれば大きい勢力なんじゃ。 >>54 >アンドロイドのスマホは日本をはじめ中国や韓国でも開発可能 >iPhoneのスマホの開発はアップルしかできない 日本をはじめ中国や韓国でも製品開発可能なPC用のOSがある... その名はWindows Macの開発はアップルしかできない WindowsやLinuxではキラーアプリケーションが開発されたことはない 常に移植待ちである WindowsやLinuxではアプリケーションはかなり多い androidのアプリケーションはiPhoneのアプリより数はかなり多い アプリケーション開発者はWindowsやLinuxやMACを保持しており これらのOSでアプリを開発するケースが多い ただ一つのOSに凝り固まるということはない >>9 その比較だとdockerのオーバーヘッド分がタイム計測に含まれないからdocker有利になる 比較するならインチキしないようにした方がいいよ >>60 Dockerと比較したんじゃなくて、Linuxと比較した結果だからこれでいいんだよ。 Mac版のDockerは仮想マシン上で動いてる。 むしろ、Docker分のオーバーヘッドが有るから逆に遅くなってる。 Dockerを使わずに、ただの仮想マシン+Linuxだったらもっと速い >>60 > dockerのオーバーヘッド分がタイム計測に含まれない 正確には、dockerサーバーのとの通信を省いているだけ。 MacとLinuxとの比較をするのだからより通信を省いたほうがより正確 それでも「仮想マシン上のDocker上のLinux」となってるから 「仮想マシン上のLinux」より若干Linux側が不利になってる。 >>63 Dockerは技術というよりツール Linuxカーネルが持ってるコンテナ技術を、アプリケーションコンテナ用に使いやすくするためのツール 根底にある技術はLinuxカーネルの機能なので、Linuxカーネルがないと動作しない。 だからWindowsでもmacOSでもOS標準の仮想マシンに軽量のLinuxをインストールして その上でDockerを動かしてる。そのうえでLinuxと同じ用にホスト上で動いているように 見えるように、例えばホストOS上のファイルをDocker上から見えるようにしたり localhostで仮想マシン上のLinuxに接続できるようにしてる >>61 その理屈だと>>3 や>>7 の言ってる「仮想マシンより遅いのが問題」と矛盾するよ >>1 は仮想マシン越しLinuxより遅いって言ってるけど、実際はそこまでは遅くない可能性もある 少なくともこの計測方法では分からないって話だよね >>65 なにも矛盾しないよ 仮にMacの速度が100%だとして、 仮想マシンで90%、Dockerで85%まで性能が落ちるはず。 その不利なはずのDockerのLinux方が速いんだから。 それともDocker上のLinuxで比べるとLinuxの方が速いってことになるから、 より遅い方法で計算してくれってこと?w もっと実装がんばれよ まったく技術力ねーな とは誰も言わないのがさすがよく調教されたアホー信者 こういった方がわかりやすかったかな? 仮想マシン上のLinuxと比較したら、macOSの方が遅いのは当然だから さらにDockerのボトルネックも加えて計測してくれ って言ってほしいの?w あ。違うか。Dockerコンテナで計測してるから、Dockerのボトルネックは加わってるんだ。 >>9 の計測をどうして欲しいんだろ?w $ docker run -it bash /usr/bin/time -p bash -c 'for i in $(seq 100000); do (:); done' real 69.11 user 30.23 sys 36.15 $ /usr/bin/time -p bash -c 'for i in $(seq 100000); do (:); done' real 93.21 user 33.17 sys 61.07 forkが遅いをmacOSが遅いに脳内変換してるアホがいるだけ >>70 timeコマンドをdockerコマンドの前に持ってくればいいんじゃね >>73 うんわかってる。 だからそうすると、 macOS VS 仮想マシン+Linux+Dockerサーバー だったのが macOS VS 仮想マシン+Linux+Dockerサーバー+Dockerサーバーとの通信 になるから、 さらにLinux側が不利になるでしょ?って話 >>1 は仮想マシン上のLinuxって話なのよ 本来は、macOS VS 仮想マシン+Linux で比較するべき話 計測はDocker上で動かしてるから「仮想マシン+Linux」側が不利になってるんだよ 計測が面倒だからDocker使って不利にしてるのにmacOSが負けた上に さらにDockerサーバーの通信のボトルネックまで加えてくれってなんだそりゃって話だよ >>74 Dockerなんか使わず 仮想マシン上のLinuxとMacで直接比較すれば怪しまれずに済むのに >>75 面倒くさい。VirtualBox使わないでどうやって macOS標準の仮想マシンにLinux入れればいいかもわからんし Linux入れるのも面倒くさい。 別にベンチマーク番長でもないし、こんなのどーでもいいわ すまん、怒らないで教えて欲しいんだが ここのマカーの人たちはもちろんUSキーボードなんだろうな? まさかJISじゃないよな?(笑) >>76 Linuxのインストールすら面倒くさい奴が 5ちゃんにスレ建てて四六時中煽りまくるのは面倒くさくないわけか >>79 何いってんだお前 今は常識的にインストールすべきもので、当然インストールしてある Docker for Mac と Linuxインストールするのを比べて、どちらが面倒くさいかの話だろ >>72 自称じゃなくて本物のUNIXだけどな https://www.opengroup.org/openbrand/register/ そんでそのforkの遅さが致命的になるようなシチュエーションは見つかったんか? >>22 fork()は別に並列処理の為の仕組みではないぞ。 >>71 >>12 macOSはシステムコール全体が遅い。 >>12 でforkまわり以外の遅い奴はファイルシステムまわりだけど Lionでやったって事はHFS+だよなあ 下地になってるfree BSDだかダーウィンだかも 遅いの? すまんが怒らないで教えてくれ AT互換機でMacBookのタッチパッドくらいに快適な操作を実現してるノートPCあるか? その辺はハードとOS両方丸っとやれるAppleにはかなわんでしょ ドライバだけで何とかできる話でもないし でもスレタイの話とはあまり関係ないな >>86 うーん Surface Pro7やChromebookなんてどうだろうか? ノートなんだけどタッチパネルモデルあるし かなり使いやすいと思うよ 構造がタブレット+ノートの考え方 ついでにLinuxの仮想空間のLinuxもかなり早い Windowsの仮想空間のLinuxも早いね 仮想空間は大いに使うべきだよ >>81 > そんでそのforkの遅さが致命的になるようなシチュエーションは見つかったんか? 致命的というほどでもないが、シェルが遅いのがいや プラグインを何も入れなければマシだが、 oh-my-zshとか色々入れるとすぐにシェルがもたつくようになる oh-my-zshなんて今どき古すぎるでしょ もっと軽いマネージャー今ならいくらでもあるし >>91 今何を使うのが一般的なのか、bashとzshで教えてくれ。 両方使うんで。 ソフトウェアををガシガシとビルドすると、コンパイラーやらスクリプトやらがガシガシ走ってforkの 遅い影響がてきめんに現れるが... まあそういうのは「普通」の使い方じゃないかなw そういえば以前、「fishはposix_spawnを呼ぶので速い」という話を小耳に挟んだのを思い出し、 自分の環境で試してみたがbashとあまり変わらなかった。そういうもの? 確かmacOSはlaunchdでもposix_spawnを使っているはずで、ちょっと期待したのだが... ぶっちゃけもうMachじゃなくてもいいんじゃね、と思ったりもしなくもないが、 Mach IPCとかで実現されてる部分が結構あるんだっけか。 今日びのOSにはIPCの機能が重要で、大概独自のIPC(のAPI)を持ってたりする。 それを思えばそういう部分も時代を先取りしていたのかもしれんが。 IPC、おれには理解できなかったのかイマイチ不安定で使えなかった ので安定のパイプでやってる >>94 Machなんて昔のゴミじゃん。 なんであんなもん未だに使ってるんだか。 設計はマイクロカーネル流儀でやって、 実際にはクランチされたカーネルに すりゃ良いだけだ。 >>86 いっぱいあるよ。 マカがMac最高と思い込んでるだけだし、 マカの頭じゃ環境ごとの違いに対応 出来ないだけでしょw >>96 パイプそれ単体でIPCの一つ 実装方法は関係ない >>1 macOSのカーネルがもっさりだから、 で終わりじゃねーの? read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる