アカウント名:
パスワード:
だったらgitくらいWindowsに標準装備させてくれませんかね
それもなんだけど、gitがストレスなく使えるように、NTFSのパフォーマンス上げてくれませんかね。純粋なファイルI/Oが遅いんじゃなくて、ディレクトリのトラバースが遅いのかな。
NTFSのパフォーマンスが悪いのではなく、使い方が違うだよね。
unix系は、伝統的にワイルドカード展開などがシェルの仕事なので foo/b*ar にマッチする全ファイルを列挙はアプリ側の仕事で、 foo/b1ar、foo/b2ar 、、と順番にシステムコールを投げるるので、一回あたりのコストは最小だけど、全体ではやりとりが増える。NTFS (というか MSDOS/Windows)では、ワイルドカードの展開などはシステムコール内の仕事で、一回あたりのコストはかかるけど、一回投げたときにやれる仕事は多い。
unix系の処理の構成のまんま、Windowsに持ってきたら、アプリとOS両方が無駄な仕事をすることになるので遅くなる。
> unix系は、伝統的にワイルドカード展開などがシェルの仕事なのでうんうん。
> foo/b*ar にマッチする全ファイルを列挙はアプリ側の仕事で、シェルはユーザランド側だからアプリといえばアプリだけど、アプリからみたらシステム側なんだが。
> foo/b1ar、foo/b2ar 、、と順番にシステムコールを投げるるので、えーっと、UNIX系では、ディレクトリはファイルの一種。といっても形式が特殊なので、read() ではなくて getdents() システムコールで中身を纏めて読む。だたし、API 的にはより抽象度の高い readdir() 系を使うのが普通。で、いずれにしても個々のファイルの名前を推測して順番にシステムコールを発行する事はないよ。(stat() 系システムコールの使い方を勘違いしてるのかな?)
ファイルの話しかしてないのに、どこからディレクトリの話になったのだろうか、、、
ワイルドカード展開というのは、ディレクトリを調べてファイル名を取得するという事ですよ。ファイルの扱いとディレクトリは不可分です。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs
開発ライフサイクルのすべてのステージでより成功できるよう力付ける (スコア:0)
だったらgitくらいWindowsに標準装備させてくれませんかね
Re: (スコア:0)
それもなんだけど、gitがストレスなく使えるように、NTFSのパフォーマンス上げてくれませんかね。
純粋なファイルI/Oが遅いんじゃなくて、ディレクトリのトラバースが遅いのかな。
Re:開発ライフサイクルのすべてのステージでより成功できるよう力付ける (スコア:0)
NTFSのパフォーマンスが悪いのではなく、使い方が違うだよね。
unix系は、伝統的にワイルドカード展開などがシェルの仕事なので foo/b*ar にマッチする全ファイルを列挙はアプリ側の仕事で、 foo/b1ar、foo/b2ar 、、と順番にシステムコールを投げるるので、一回あたりのコストは最小だけど、全体ではやりとりが増える。
NTFS (というか MSDOS/Windows)では、ワイルドカードの展開などはシステムコール内の仕事で、一回あたりのコストはかかるけど、一回投げたときにやれる仕事は多い。
unix系の処理の構成のまんま、Windowsに持ってきたら、アプリとOS両方が無駄な仕事をすることになるので遅くなる。
Re: (スコア:0)
> unix系は、伝統的にワイルドカード展開などがシェルの仕事なので
うんうん。
> foo/b*ar にマッチする全ファイルを列挙はアプリ側の仕事で、
シェルはユーザランド側だからアプリといえばアプリだけど、アプリからみたらシステム側なんだが。
> foo/b1ar、foo/b2ar 、、と順番にシステムコールを投げるるので、
えーっと、UNIX系では、ディレクトリはファイルの一種。といっても形式が特殊なので、
read() ではなくて getdents() システムコールで中身を纏めて読む。
だたし、API 的にはより抽象度の高い readdir() 系を使うのが普通。
で、いずれにしても個々のファイルの名前を推測して順番にシステムコールを発行する事はないよ。
(stat() 系システムコールの使い方を勘違いしてるのかな?)
Re: (スコア:0)
ファイルの話しかしてないのに、どこからディレクトリの話になったのだろうか、、、
Re: (スコア:0)
ワイルドカード展開というのは、ディレクトリを調べてファイル名を取得するという事ですよ。ファイルの扱いとディレクトリは不可分です。