hpux оставляет файлы, которые запускаются с # позади после того, как я удаляю программу. Действительно ли это нормально и как я удаляю их?

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

Они используются как это:

if (likely(some_condition)) {
  // the compiler will try and make the code layout optimal for the case
  // where some_condition is true, i.e. where this block is run
  most_likely_action();
} else {
  // this block is less frequently used
  corner_case();
}

Это должно использоваться с большой осторожностью (т.е. на основе фактических результатов профилирования ответвления). Неправильная подсказка может ухудшить производительность (очевидно).

Некоторые примеры того, как код может быть оптимизирован, легко найдены путем поиска GCC __builtin_expect. Это сообщение в блоге gcc оптимизация: __ builtin_expect, например, детализирует дизассемблирование с ним.

Вид оптимизации, которая может быть сделана, является очень определенным для процессора. Общее представление состоит в том, что часто, процессоры выполнят код быстрее, если он не будет переходить/нещадно критиковать место. Чем более линейно это, и более предсказуемое, которое ответвления, тем быстрее это будет работать. (Это особенно верно для процессоров с глубокими конвейерами, например.)

Таким образом, компилятор испустит код, таким образом, что наиболее вероятное ответвление не включит переход, если это будет тем, что целевой ЦП предпочитает, например.

3
11.04.2011, 22:47
1 ответ

Кроме того, fuser, другой полезный инструмент для того, чтобы получить информацию об открытых файлах и процессах с помощью них lsof.

Как пользователь Linux я не знаю много о hpux, но делает ps -ef на той платформе показывают более не существующие процессы? Существует ли опция показать скрытые процессы? Вы работаете ps как корень? Это кажется, что что-то получило borked в Вашей системе, и возможно процесс умер или был уничтожен, в то время как это все еще имело дисковые io стоявшие в очереди вызовы? Эти файлы все еще показывают как используемые после перезапуска системы?

1
27.01.2020, 21:32
  • 1
    да, ps -ef действительно показывает более не существующие процессы и существует один на машине. Я выполняю PS как корень. В странице справочника говорится ps -e должен показать все процессы. Похож я должен говорить с производителями программы для наблюдения, почему процесс идет более не существующий. Это было информативно.Спасибо! –  user6502 11.04.2011, 20:15
  • 2
    @user6502: Удостоверьтесь, что Вы читаете последнюю регистрацию там. Ваша проблема не от более не существующего процесса, это от живого процесса, это связано с этими библиотеками (они не исполняемые файлы, они - совместно использованные библиотеки, таким образом, ps не поможет). lsof должен сказать Вам, каковы эти процессы. –  Gilles 'SO- stop being evil' 11.04.2011, 22:50

Теги

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