Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
index % time self children called name
<spontaneous>
[1] 97.7 74.04 0.00 idle [1]
< spontaneous>
[2] 0.9 0.00 0.65 shed_sync [2]
0.01 0.63 12/12 VOP_FSYNC (cycle 1) [4]
0.00 0.00 75/1731 ltsleep [62]
0.00 0.00 152/1731 lockmgr [310]
И так далее. Всего 6 столбцов с данными.
1. Уникальное число, присвоенное каждой функции.
2. Cколько времени (в процентах) исполнялась некая функция и все ее «потомки».
3. Общий процент времени, истраченный на эту функцию.
4. Общее время, занятое «потомками» этой функции.
5. Сколько раз функция была вызвана. После «/» идет количество вызовов этой функции ее потомками. Рекурсивные вызовы не учитываются.
6. Имя функции.
Следующим разделом этого файла является список всех функций, которые указывались выше, отсортированные в алфавитном порядке, и с указанием уникального номера, присвоенного в разделе Call graph profile. После того как мы проанализировали полученные данные, давайте создадим еще одно ядро системы. Отличие от «оригинального» будет в заведомой «заторможенности» одной из функций. Для примера (как и в NetBSD handbook) возьмем функцию check_exec. Настало время немного поправить ядро системы. Берем свой любимый текстовый редактор и открываем файл /usr/src/sys/kern/kern_exec.c. Ищем там функцию check_exec и добавляем в конце вот такой код: