1
私はソケット(TCP)を使ってデータを交換するオープンソースパッケージを開発しています。 Linuxでは、ローカルのUnixソケットまたはリモートソケットを使用できます。ローカルループバックを介してローカルソケットのパフォーマンスをリモートと比較すると、Unixソケットが50倍高速になることがわかります。他はすべて同じです。UNIXソケットがローカルループバックTCPよりも50倍速くなるはずですか?
このパフォーマンスの相違は予想されますか、それともコードのどこかでエラーを示していますか?
ほとんどの条件下で、データ交換は双方向で、通常は1バイトのコマンド(uint8_t
)のようなものです。何が起こっているのか、続いて1kb程度のデータが続きます。
Nagleのアルゴリズムを無効にすることでこれをテストできますか? – crobar
確かに、プロダクションコードでそれをやりたければならないかもしれませんが、効率が重視される場合は、できるだけ独自のバッファリングや集約を行うべきです。 – EJP
ありがとう、私は今週テストし、おそらくこれを答えにします。 – crobar