当社比10倍。

VIVERの起動速度。かなり早くなっている。

ドライバのロード時間を入れてないけど(テストしてない、というか今のところテストできない)、ハードウェアの自動検出時間がものすごく短縮されている。
なんたってデバイス応答時間無しで検出するわけで、hwsetupより早いに決まっている。(その代わり検出できる情報量が少ないみたいだけど、まったく問題なし)

さらに各種ファイルシステムですべてのブロックデバイスをマウントしまくる処理を並列化すれば、さらにスピードアップするに違いない。今はここの処理にいちばん時間がかかっている。
C++で書くと、デバイス応答時間が発生する処理(ドライバのロード、マウント周り)以外は、目にも止まらぬ早さで終わる。当り前?
シェルスクリプトだと、目には止まる。grep | sed *** | sed *** | sed *** とかやっていたら、そりゃ時間もかかるわけで。



ブロックデバイスをマウントしまくる処理、スレッドで並列化するかプロセスで並列化するか。

ドライバのロードは、modprobeで依存関係を解決してもらうことでmodules.depをパースする手間を省いて、プロセスで並列化したのだけど、mountも手抜きするのはどうかという気が…。fork()するオーバーヘッドでかえって遅くなるんじゃないかと。
Linuxのfork()はexec()するだけなら早いという噂もあるけど。むむ。どうなんだ。

fork()してシステムコールを呼んでexitという手もあるか。

ドライバのロードも、本当はmodules.depを自分でパースして依存関係を解決した上で、スレッドで並列化してシステムコールを呼んだ方が早いのだろうけど、極めて面倒。



pthread_create() + join()と、fork() + waitpid()ってどっちが早いんだろうか?セオリー的にはpthreadの方が早そうだけど。