为什么curl > /dev/null 和curl -o /dev/null 性能差异很大?

为什么curl > /dev/null 和curl -o /dev/null 性能差异很大?

我正在使用 Intel Atom D525,这是一款非常不强大的处理器,适用于我的 Debian 9 家庭路由器。我尝试了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带宽。为什么这两个命令的性能差距如此之大?

答案1

我无法重现这个。

对于该特定文件,我在某些尝试中确实获得了较慢的速度,但这与 的参数无关curl,它是随机发生的并且具有两种变体。

curlI have的版本(来自 Debian)的处理方式也与其他输出文件curl 7.52.1 (x86_64-pc-linux-gnu)没有任何不同,显示了 an和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 +++

这是我最近两次运行的输出,> /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

相关内容