GoGPT Best VPN GoSearch

Значок OnWorks

sprof - Интернет в облаке

Запустите sprof в бесплатном хостинг-провайдере OnWorks через Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS

Это команда sprof, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


sprof - чтение и отображение данных профилирования общих объектов

СИНТАКСИС


спроф [вариант] ... общий-объект-путь [путь к данным профиля]

ОПИСАНИЕ


The спроф команда отображает сводку профилирования для общего объекта (разделяемой библиотеки)
указан в качестве первого аргумента командной строки. Сводка профилирования создается с использованием
ранее созданные данные профилирования во втором (необязательном) аргументе командной строки. Если
путь к данным профилирования опущен, тогда спроф попытается вывести его, используя
soname разделяемого объекта, ищем файл с именем .профиль в
Текущий каталог.

ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ


Следующие параметры командной строки определяют вывод профиля, который необходимо создать:

-c, - пары вызовов
Распечатайте список пар путей вызовов для интерфейсов, экспортируемых общим
объект, а также количество раз использования каждого пути.

-p, --плоский профиль
Создайте плоский профиль всех функций в контролируемом объекте с
подсчеты и клещи.

-q, --граф
Сгенерируйте график звонков.

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

Доступны следующие дополнительные параметры командной строки:

-?, --Помогите
Отобразите сводку параметров и аргументов командной строки и завершите работу.

--использование
Отобразите короткое сообщение об использовании и выйдите.

-V, --версия
Отобразите версию программы и выйдите.

СООТВЕТСТВИЕ К


The спроф Команда является расширением GNU, которого нет в POSIX.1.

ПРИМЕР


Следующий пример демонстрирует использование спроф. Пример состоит из основного
программа, которая вызывает две функции в общем объекте. Сначала код основной программы:

$ кошка прог.с
#включают

void x1 (недействительно);
void x2 (недействительно);

Int
main (int argc, char * argv [])
{
x1 ();
x2 ();
выход (EXIT_SUCCESS);
}

Функции x1 () и x2 () определены в следующем исходном файле, который используется для
построить общий объект:

$ кошка libdemo.c
#включают

аннулировать
потреблятьCpu1 (int lim)
{
интервал j;

для (j = 0; j <lim; j ++)
getppid ();
}

аннулировать
x1 (void) {
интервал j;

для (j = 0; j <100; j ++)
потреблятьCpu1(200000);
}

аннулировать
потреблятьCpu2 (int lim)
{
интервал j;

для (j = 0; j <lim; j ++)
getppid ();
}

аннулировать
x2 (недействительно)
{
интервал j;

для (j = 0; j <1000; j ++)
потреблятьCpu2(10000);
}

Теперь мы создаем общий объект с настоящим именем libdemo.so.1.0.1, и soname
libdemo.so.1:

$ cc -g -fPIC -общий -Wl, -soname, libdemo.so.1 \
-o libdemo.so.1.0.1 libdemo.c

Затем мы создаем символические ссылки для имени библиотеки и имени компоновщика библиотеки:

$ ln -sf libdemo.so.1.0.1 libdemo.so.1
$ ln -sf libdemo.so.1 libdemo.so

Затем мы компилируем основную программу, связываем ее с общим объектом, а затем перечисляем
динамические зависимости программы:

$ cc -g -o прог прог.с -Л. -ldemo
$ LDD прог
linux-vdso.so.1 => (0x00007fff86d66000)
libdemo.so.1 => не найдено
libc.so.6 => /lib64/libc.so.6 (0x00007fd4dc138000)
/lib64/ld-linux-x86-64.so.2 (0x00007fd4dc51f000)

Чтобы получить информацию о профилировании для общего объекта, мы определяем среду
переменная LD_ПРОФИЛЬ с именем библиотеки:

$ экспорт LD_PROFILE = libdemo.so.1

Затем мы определяем переменную среды LD_PROFILE_OUTPUT с именем пути
каталог, в который должны быть записаны выходные данные профиля, и создайте этот каталог, если он не
уже существуют:

$ экспорт LD_PROFILE_OUTPUT = $ (pwd) / prof_data
$ MkDir -p $ LD_PROFILE_OUTPUT

LD_ПРОФИЛЬ приводит к тому, что вывод профилирования прилагается в выходной файл, если он уже существует,
поэтому мы гарантируем, что ранее не существовало данных профилирования:

$ rm -f $ LD_PROFILE_OUTPUT / $ LD_PROFILE.profile

Затем мы запускаем программу для создания выходных данных профилирования, которые записываются в файл в папке
каталог, указанный в LD_PROFILE_OUTPUT:

$ LD_LIBRARY_PATH =. ./прог
$ ls prof_data
libdemo.so.1.profile

Затем мы используем спроф -p возможность создания плоского профиля со счетчиками и отметками:

$ спроф -p libdemo.so.1 $ LD_PROFILE_OUTPUT / libdemo.so.1.profile
Плоский профиль:

Каждая выборка считается 0.01 секунды.
% кумулятивной собственной суммы
время секунды секунды звонит нам / звоните нам / звоните имя
60.00 0.06 0.06 100 600.00 Потребление ЦП1
40.00 0.10 0.04 1000 40.00 Потребление ЦП2
0.00 0.10 0.00 1 0.00 х1
0.00 0.10 0.00 1 0.00 х2

The спроф -q опция генерирует график звонков:

$ спроф -q libdemo.so.1 $ LD_PROFILE_OUTPUT / libdemo.so.1.profile

index% раз, когда дети называют себя именем

0.00 0.00 100/100 x1 [1]
[0] 100.0 0.00 0.00 100 потреблять ЦП1 [0]
-----------------------------------------------
0.00 0.00 1/1
[1] 0.0 0.00 0.00 1 x1 [1]
0.00 0.00 100/100 потребленияCpu1 [0]
-----------------------------------------------
0.00 0.00 1000/1000 x2 [3]
[2] 0.0 0.00 0.00 1000 потреблять ЦП2 [2]
-----------------------------------------------
0.00 0.00 1/1
[3] 0.0 0.00 0.00 1 x2 [3]
0.00 0.00 1000/1000 потребленияCpu2 [2]
-----------------------------------------------

Вверху и внизу значок " "строки представляют собой идентификаторы, которые не входят в
профилированный объект (в данном примере это экземпляры Основной ()).

The спроф -c опция генерирует список пар вызовов и количество их вхождений:

$ спроф -c libdemo.so.1 $ LD_PROFILE_OUTPUT / libdemo.so.1.profile
х1 1
x1 потреблениеCpu1 100
х2 1
x2 потреблениеCpu2 1000

Используйте sprof онлайн с помощью сервисов onworks.net


Бесплатные серверы и рабочие станции

Скачать приложения для Windows и Linux

Команды Linux

Ad




×
Реклама
❤️Совершайте покупки, бронируйте или заказывайте здесь — никаких затрат, что помогает поддерживать бесплатность услуг.