Linux: Полное руководство
Шрифт:
Читать
В нашем случае мы вывели на консоль шесть символов, поэтому вызов write возвратит значение 6.
В случае, если системный вызов завершился неудачно (обычно код ошибки -1), программа strace выводит не только код, но и описание ошибки:
Стандартные константы выводятся в их символьном представлении:
Сигналы также выводятся в символьном представлении, например:
Структуры, точнее члены структур, заключаются в фигурные скобки и выводятся в формате имя_члена=значение, например:
Символьные указатели печатаются как строки в С, то есть их значения заключены в двойные кавычки:
22.5. Оптимизация программ. Профайлер gprof
Ваша программа работает медленно? Скорее всего, причина кроется в неэффективном, медленном алгоритме. Существуют программы, позволяющие определить время работы каждой функции вашей программы и всей программы в целом. Программы такого рода называются профайлерами. В вашем дистрибутиве может присутствовать один из профайлеров gprof, prof, profiler.
Сейчас мы рассмотрим программу gprof (The GNU Profiler), позволяющую определить время
Ключи командной строки gprof Таблица 22.3
Ключ | Назначение |
---|---|
– а | He выводить информацию о статических функциях |
– b | Не выводить описание каждого поля в итоговой таблице |
– с | Включить эвристический анализ текстового сегмента объектного файла с целью создания статического графика вызовов |
– e имя_функции | На выводить отчет о работе указанной функции и обо всех функциях, которые из нее вызываются |
– E имя функции | Не обрабатывать указанную функцию и все функции, которые она вызывает |
– f имя_функции | выводить информацию только об указанной функции и обо всех функциях, которые из нее вызываются |
– F имя_функции | Обрабатывать только указанную функцию и все функции, которые из нее вызываются |
– k func1 func2 | Не выводить информацию о вызове функции func2 из функции func1 |
– s | Создание итогового файла gmon.sum |
– z | Вывести функции с нулевым процессорным временем |
22.5.1. Использование профайлера
Для использования профайлера нужно скомпилировать программу с опцией компилятора – pg и без опции – о. так как профайлер по умолчанию работает с файлом
Без ключа – b профайлер выведет описание полей итоговой таблицы:
♦ Time: время работы функции в процентном соотношении;
♦ cumulative seconds: сумма числа секунд этой функции и вызывающих ее функций;
♦ self seconds: число секунд, потраченное на работу этой функции в отдельности;
♦ Calls: число вызовов;
♦ self ms/calls: количество миллисекунд, на протяжении которых функция выполнялась;
♦ total ms/calls: количество секунд, на протяжении которых выполнялась функция и все функции, которые вызываются данной функцией;
♦ name: имя функции.
Рис. 22.5. Программа gprof
Чтобы было понятно, что означает каждое поле, рассмотрим листинг 22.3.
Листинг 22.3. Демонстрационная программа
Диверсант
2. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
рейтинг книги
Горькие ягодки
Любовные романы:
современные любовные романы
рейтинг книги
Ученичество. Книга 2
2. Государственный маг
Фантастика:
фэнтези
попаданцы
рейтинг книги
Набирая силу
2. Альфа-ноль
Фантастика:
фэнтези
боевая фантастика
рейтинг книги
Ученик. Книга третья
3. Ученик
Фантастика:
фэнтези
рейтинг книги
Найди меня Шерхан
3. Ямпольские-Демидовы
Любовные романы:
современные любовные романы
короткие любовные романы
рейтинг книги
На границе империй. Том 4
4. Фортуна дама переменчивая
Фантастика:
космическая фантастика
рейтинг книги
Большая игра
4. Иван Московский
Фантастика:
альтернативная история
рейтинг книги
Камень. Книга восьмая
8. Камень
Фантастика:
фэнтези
боевая фантастика
рейтинг книги
Последний Паладин. Том 2
2. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
рейтинг книги
Последняя Арена 7
7. Последняя Арена
Фантастика:
рпг
постапокалипсис
рейтинг книги
Шесть принцев для мисс Недотроги
3. Мисс Недотрога
Фантастика:
фэнтези
рейтинг книги
Низший - Инфериор. Компиляция. Книги 1-19
Фантастика 2023. Компиляция
Фантастика:
боевая фантастика
рейтинг книги
Огненный наследник
10. Десять Принцев Российской Империи
Фантастика:
попаданцы
аниме
фэнтези
рейтинг книги
