Как проверить разницу во времени между машинами linux не более 5 секунд

Ваш файл начинается с метки порядка байтов UTF-8. Это символ Юникода U+FEFF, который в UTF-8 кодируется как три байта. Эти три байта отображаются как 357 273 277 при печати в формате base 8.

Для команды sed эти байты в начале строки означают, что 1 на самом деле не является первым символом в этой строке. Многие другие инструменты будут трактовать это так же.

Чтобы получить полезный результат, необходимо удалить BOM до выполнения других операций. Например, вы можете начать свой sed скрипт с s/^\xef\xbb\xbf//, чтобы удалить BOM. Ваша полная команда будет выглядеть так

sed -e 's/^\xef\xbb\xbf//;s/^[0-9]//'

2
22.04.2018, 13:16
1 ответ

perf незаметно не подсчитывал переключения контекста, потому что вы не являетесь пользователем root.

(Linux имеет 64k ​​конвейерных буферов. В любом случае вы можете увидеть очень близкое к 2 переключениям контекста на переданные 64 КБ. Не совсем уверен, как это работает, но я подозреваю, что это только подсчет переключений контекста от от dd, либо к другому dd, либо к бездействующей задаче для этого процессора ).

$ sudo perf stat taskset 0x1 sh -c 'dd bs=1M </dev/zero|dd bs=1M >/dev/null'
^C14508+0 records in
14507+0 records out
15211692032 bytes (15 GB, 14 GiB) copied, 3.87098 s, 3.9 GB/s
14508+0 records in
14508+0 records out
15212740608 bytes (15 GB, 14 GiB) copied, 3.87044 s, 3.9 GB/s
taskset: Interrupt

 Performance counter stats for 'taskset 0x1 sh -c dd bs=1M </dev/zero|dd bs=1M >/dev/null':

       3872.597645      task-clock (msec)         #    1.000 CPUs utilized          
           464,325      context-switches          #    0.120 M/sec                  
                 0      cpu-migrations            #    0.000 K/sec                  
               928      page-faults               #    0.240 K/sec                  
    11,099,016,844      cycles                    #    2.866 GHz                    
    13,765,220,898      instructions              #    1.24  insn per cycle         
     3,053,464,009      branches                  #  788.480 M/sec                  
        15,462,959      branch-misses             #    0.51% of all branches        

       3.874121023 seconds time elapsed

$ echo $((15212740608 / 464325))
32763

$ sudo perf stat sh -c 'dd bs=1M </dev/zero|dd bs=1M >/dev/null'
^C7031+0 records in
7031+0 records out
7032+0 records in
7031+0 records out
7372537856 bytes (7.4 GB, 6.9 GiB) copied, 4.27436 s, 1.7 GB/s7372537856 bytes (7.4 GB, 6.9 GiB) copied, 4.27414 s, 1.7 GB/s

sh: Interrupt

 Performance counter stats for 'sh -c dd bs=1M </dev/zero|dd bs=1M >/dev/null':

       3736.056509      task-clock (msec)         #    0.873 CPUs utilized          
           218,047      context-switches          #    0.058 M/sec                  
               206      cpu-migrations            #    0.055 K/sec                  
               877      page-faults               #    0.235 K/sec                  
     8,328,413,541      cycles                    #    2.229 GHz                    
     7,617,859,285      instructions              #    0.91  insn per cycle         
     1,671,904,009      branches                  #  447.505 M/sec                  
        13,827,669      branch-misses             #    0.83% of all branches        

       4.277591869 seconds time elapsed

$ echo $((7372537856 / 218047))
33811
3
27.01.2020, 22:02

Теги

Похожие вопросы