컬 > /dev/null과 컬 -o /dev/null 사이에 성능 차이가 큰 이유는 무엇입니까?

컬 > /dev/null과 컬 -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 대역폭을 차지합니다. 이 두 명령 사이의 성능 차이가 왜 그렇게 큰가요?

답변1

나는 이것을 재현할 수 없습니다.

이 특정 파일을 사용하여 일부 시도에서 속도가 느려졌지만 이는 의 매개변수와 관련이 없으며 curl무작위로 두 가지 변형으로 발생했습니다.

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 +++

다음은 지난 두 번의 실행 결과 > /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

관련 정보