Как сказать, какой процесс замедляет начальную загрузку (bootchart)

Make-файлы следуют этому формату (Make-файлы всегда должны использовать табуляцию вместо пробелов, поскольку это требуется в большинстве (если не во всех) реализациях make ):

target: dependencies
    operations to build target
  • цель - это то, что вы хотите построить / скомпилировать / создать. Их может быть несколько, и они должны быть построены в порядке Makefile, если не требуется сначала учесть зависимости. первая цель в вашем файле называется целью по умолчанию , это то, что make пытается построить, когда вы вызываете ее без аргументов.
  • Зависимости - это разные части, необходимые для построения цели.

В этом Makefile у вас есть две цели:

  • test
  • lex.yy.c

Поскольку lex.yy.c - это зависимость, необходимая для сборки test , сначала он будет построен из test.l . Как только он будет сгенерирован, можно будет скомпилировать тест . В основном, make ...:

  • Пытается построить тест .
  • Неразрешенная зависимость. lex.yy.c не существует (или был обновлен), его нужно сначала построить.
  • Операции чтения для построения lex.yy.c . Выполняется сборка flex test.l : lex.yy.c .
  • Все зависимости для теста соблюдены. Выполняется g ++ lex.yy.c -ll -o test .
  • тест создан.

Дополнительная информация: Для получения дополнительной информации о make-файлах я бы порекомендовал Платформу разработки Linux от Rafeeq Ur Rehman . Глава 4: Использование GNU Make .

1
15.04.2014, 01:19
1 ответ

Я четко вижу, что он ничего не делает между 40-105-ми годами.

Если вы имеете в виду, что использование процессора кажется низким, заметьте, что "I/O (wait)" очень высокое значение в течение этого периода времени, и ряд процессов затенены розовым цветом (по крайней мере, один на весь период), что указывает на то, что они находятся в [116165] "прерывистом сне" [116166].

"Прерывистый сон" не обязательно является пассивным состоянием для ядра - он может быть занят петлей все время, и это обычно включается в "sys" компонент процессорного времени, так что, возможно, приложение, которое произвело этот график, вычитает это. В любом случае, если процесс загрузки достиг точки, когда больше ничего не может начаться, потому что всё остальное требует чего-то другого, чтобы закончить сначала, и всё это ждёт ввода/вывода, то вот что может произойти.

#!/bin/bash
for i in {2..70}
do
   echo Doing track number $i...
   ./HandBrakeCLI -t $i -i /Volumes/MX1-0N-NW1_DES --preset iPad -o X-Men_Vol1_Disk1_Title$i.mp4
done
Если это обычный рабочий стол, использующий локальное дисковое хранилище, то непрерывное ожидание ввода/вывода так долго может указывать на прерывистый сбой аппаратного обеспечения.[115802].
1
27.01.2020, 23:52

Теги

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