curl > /dev/nullとcurl -o /dev/nullの間にパフォーマンスの違いが大きいのはなぜですか?

curl > /dev/nullとcurl -o /dev/nullの間にパフォーマンスの違いが大きいのはなぜですか?

私はDebian 9ホームルーターに非常に弱いプロセッサであるIntel Atom D525を使用しています。私はcurl http://dl.google.com/dl/android/aosp/sailfish-pq2a.190205.003-factory-164a7269.zip > dev/null両方とも試しましたcurl http://dl.google.com/dl/android/aosp/sailfish-pq2a.190205.003-factory-164a7269.zip -o dev/null。前者は25MB / sの速度しか得られず、後者は38MB / sの速度を得ることができます。これは基本的に私の300Mbps帯域幅を占めます。これら2つのコマンド間のパフォーマンスの違いはなぜそれほど大きいのですか?

答え1

私はこれを再現できません。

この特定のファイルを使用すると、いくつかの試みで速度が遅くなりましたが、これはパラメータに関係なく、ランダムにcurl2つのバリエーションで発生しました。

curl私が持っているバージョン(Debian)もcurl 7.52.1 (x86_64-pc-linux-gnu)他の出力ファイルとは異なり、an'sとs'を表示します。/dev/nullstraceopen()write()

$ strace -etrace=open,write curl -s http://www.google.com/ -o /dev/null
[...]
open("/dev/null", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 4
write(4, "<!doctype html><html itemscope=\""..., 4096) = 4096
write(4, "px 0 4px;margin-left:4px}input{f"..., 4096) = 4096
...
+++ exited with 0 +++

以下は過去2回の実行結果であり、> /dev/null次の間に大きな違いはありません-o /dev/null

$ curl http://dl.google.com/dl/android/aosp/sailfish-pq2a.190205.003-factory-164a7269.zip > /dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1344M  100 1344M    0     0  94.5M      0  0:00:14  0:00:14 --:--:-- 91.0M

$ curl http://dl.google.com/dl/android/aosp/sailfish-pq2a.190205.003-factory-164a7269.zip -o /dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1344M  100 1344M    0     0  89.3M      0  0:00:15  0:00:15 --:--:-- 92.8M

関連情報