なぜunixドメインソケットはipソケットよりも高速なのか?
っていう話や。まあ、ちょっと事情があってプロセス間通信をしたいんですわ。 でね、わざわざtcp/ipのレイヤーまでもっていかなくてもいいやない、ローカルホスト内の通信だったらね。だからunixドメインソケットを使おうと思っているんだけど。 じゃあ、なんでunixドメインソケットのほうが高速なのかって話だけど、その理由はもう単純で、tcp/ipまでいかないからやな。もう少し具体的に書こうか。
コンテキストスイッチが発生しない
まあ、ネットワーク通信ってシステムコールだからコンテキストスイッチが発生するんだよね。 でもドメインソケットはネットワーク通信ではないから、コンテキストスイッチが発生しないって話や
networkStackを通る必要がない
コンテキストスイッチが発生する以外にネットワーク通信はいろいろとオーバヘッドが大きいです
buffer間でのコピーが発生する
UnixドメインソケットはsharedMemoryを使って通信する。
って感じや。
でもソケットって扱いめっちゃ面倒じゃないですか。どうやってやるんですか?
わかるー。マジでわかる。httpはsocketの上で作られているからね。扱いが簡単なんだよね。 あー、でも、ドメインソケットを使ってhttp通信をすればいいってことじゃね?いやそうやん! そうしましょう。そのやり方を教えましょう。 kwi