Сохранить первую строку и удалить все до шаблона для всех абзацев

Современные среды пользовательского интерфейса (Windows, OSX, Linux, мобильные устройства и т. д. )в значительной степени зависят от производительности графического конвейера.

Системы имеют один **графический конвейер. Все графические программы (рабочий стол, браузер, игры и т. д. )являются отдельными потоками, которые должны совместно использовать этот единый графический контекст.

Это создает необходимые условия для проблем с многопоточностью. Потоки могут быть заблокированы, заблокированы, запущены и т. д.

Вероятно, ваш поток «не очень хорошо работает» с графическим потоком рабочего стола и зависает. Вероятно, ожидание ресурса, который больше недоступен (, правильно ли вы освобождаете все ресурсы?)

OpenGL разрабатывается очень агрессивно и доводит аппаратные средства до предела. Вы можете обнаружить, что ошибка не возникает на другом оборудовании.

Однако, если вся ваша система выключается, то, вероятно, фактический набор микросхем конвейера перегревается и/или перенапряжение. В большинстве аппаратных средств есть датчики, которые отключают питание, если возникают вредные скачки нагрузки. Производители проводят нагрузочное тестирование своего оборудования и устанавливают соответствующие пороговые значения.

**Отдельные графические конвейеры заменяются несколькими конвейерами (, которые могут «владеть» отдельными меньшими областями экрана ). Это то, что касается OpenGL Vulkan , и для него требуются специальные наборы микросхем GPU.

enter image description here

1
26.10.2019, 20:39
5 ответов

Вы можете сделать что-нибудь с сохранением состояния, например

/first-pattern/ {print; p = 0} /second-pattern/ {p = 1} p

Пр.

$ awk '/^criteria/ {print; p = 0} /(Old|New) run:/ {p = 1} p' file.log
criteria (NO-NO) data/speed/profile_1
        Old run: exit speed=22.5
        Old run: ramp speed=15.2
        New run: exit speed=28.2
        New run: ramp speed=19.3

criteria (NO-NO) data/speed/profile 3
        Old run: exit speed=25.3
        Old run: ramp speed=18.6
        New run: exit speed=29.5
        New run: ramp speed=17.9
1
27.01.2020, 23:40

Пробовал с помощью команды «Ниже»

awk '/criteria/||/:/{print $0}' filename
0
27.01.2020, 23:40

Учитывая опубликованный пример ввода/вывода, все, что вам нужно, это:

$ grep -v '^    [^ ]' file
criteria (NO-NO) data/speed/profile_1
        Old run: exit speed=22.5
        Old run: ramp speed=15.2
        New run: exit speed=28.2
        New run: ramp speed=19.3

criteria (NO-NO) data/speed/profile 3
        Old run: exit speed=25.3
        Old run: ramp speed=18.6
        New run: exit speed=29.5
        New run: ramp speed=17.9

Если это не все, что вам нужно, отредактируйте свой вопрос, чтобы обеспечить более репрезентативную выборку входных/выходных данных.

0
27.01.2020, 23:40

Gnu sed с оператором диапазона подходит для этого сценария:

$ sed -Ee '
    /^criteria/,/^$/!d
    //b
    /(Old|New) run:/!d
' file
0
27.01.2020, 23:40
egrep '(criteria|run:)' file

должен работать нормально, пока ни один из этих двух шаблонов не встречается в части «что-то бесполезное».

0
27.01.2020, 23:40

Теги

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