Những đơn vị nào curl sử dụng cho băng thông?


17

curl trên dòng lệnh hiển thị tiến trình như thế này:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  8 1000M    8 85.2M    0     0    57k      0  1:06:13  0:05:38  1:00:35   47k

Tốc độ hiển thị trong ví dụ này là 47k. Nhưng điều này có nghĩa là gì? Có phải đây là:

  • 47kiB, tức là 47 * 1024 byte
  • 47kB, nghĩa là, 47 * 1000 byte
  • 47kb, nghĩa là, 47 * 1000 bit (bit thường được sử dụng để đo tốc độ)

Và nó là:

  • môi giây
  • hay mỗi phút?

1
Câu hỏi tương tự cho wget: superuser.com/q/184331/90668
Flimm

Câu trả lời:


14

Những đơn vị nào curl sử dụng cho băng thông?

Theo mã nguồn đó là kiB per second.


Ở đây bạn có thể thấy định nghĩa sử dụng 1024và không1000

/* The point of this function would be to return a string of the input data,
   but never longer than 5 columns (+ one zero byte).
   Add suffix k, M, G when suitable... */
static char *max5data(curl_off_t bytes, char *max5)
{
#define ONE_KILOBYTE  CURL_OFF_T_C(1024)
#define ONE_MEGABYTE (CURL_OFF_T_C(1024) * ONE_KILOBYTE)
#define ONE_GIGABYTE (CURL_OFF_T_C(1024) * ONE_MEGABYTE)
#define ONE_TERABYTE (CURL_OFF_T_C(1024) * ONE_GIGABYTE)
#define ONE_PETABYTE (CURL_OFF_T_C(1024) * ONE_TERABYTE)

...

}

Ở đây bạn có thể thấy phép tính được thực hiện trong ms và sau đó chia 1000cho để có được giây.

  /* Calculate the average speed the last 'span_ms' milliseconds */
  {
    curl_off_t amount = data->progress.speeder[nowindex]-
      data->progress.speeder[checkindex];

    if(amount > CURL_OFF_T_C(4294967) /* 0xffffffff/1000 */)
      /* the 'amount' value is bigger than would fit in 32 bits if
         multiplied with 1000, so we use the double math for this */
      data->progress.current_speed = (curl_off_t)
        ((double)amount/((double)span_ms/1000.0));
    else
      /* the 'amount' value is small enough to fit within 32 bits even
         when multiplied with 1000 */
      data->progress.current_speed = amount*CURL_OFF_T_C(1000)/span_ms;
  }

1
Tôi đã phải tìm kiếm cái này, vì vậy hy vọng điều này sẽ giúp ai đó nỗ lực: kiB là một kibibyte và bạn có thể tìm kiếm các trang web như thế này để chuyển đổi nó sang các đơn vị khác.
SteveLambert
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.