break;
}
ChannelDestroy(chid);
printf("\nEnd of server\n" );
return EXIT_SUCCESS;
}
Для получения информации профилирования нужно настроить целевую платформу в проекте следующим образом.
В окне QNX System Profiler Perspective есть иконка QNX Logging ->Log Configurations (рис. 6). Основным параметром настройки в этом окне является Period Length – длительность логгирования. Если программы зациклены, то удобно запускать сначала их, а потом Logger, тогда параметр Period Length может быть небольшим (1 с, например). Если программы не зациклены, то можно запустить Logger (10 с, например), а потом запустить клиент.
Рис. 6.
В итоге навигаторе целевой платформы отображается файл с расширением .kev.
При запуске этого файла отражается информация о системе в графическом представлении.Summary показывает какую часть времени выполнялись пользовательские процессы, системные и обработчики прерываения. CPU Usage показывает загруженность процессора и количество времени, в течение которого выполнялось приложение.
Рис. 6
Рис. 7
Рис. 7.
Наибольший интерес при изучении IPC представляет представление состояния системы в режиме Timeline (рис. 7). Фиолетовым цветом отмечен промежуток, когда клиент «спит». Затем от оправляет сообщение серверу, который до этого момента Recieve-блокирован (синий). После этого клиент Send-блокирован. На стр. 6 указан метод получения аналогичной информации в текстовой форме с помощью утилит traceprinter и tracelogger. Содержимое этого файла logg.txt:
pid:974897
t:0xbe7f9e24 CPU:00 THREAD :THCREATE pid:974897 tid:1
t:0xbe7fa33a CPU:00 THREAD :THRECEIVE pid:974897 tid:1
path:/proc/974897/as
…
path:/proc/974897/as
t:0xc015af43 CPU:00 KER_CALL:CONNECT_ATTACH/39 nd:0x00000000 pid:974897
t:0xc01a50a5 CPU:00 COMM :SND_MESSAGE rcvid:0x00000003 pid:974897
t:0xc01aee56 CPU:00 THREAD :THREADY pid:974897 tid:1
t:0xc01af51b CPU:00 THREAD :THRUNNING pid:974897 tid:1
t:0xc01b191a CPU:00 COMM :REC_MESSAGE rcvid:0x00000003 pid:974897
t:0xc01ffdb3 CPU:00 THREAD :THREPLY pid:974897 tid:1
t:0xc0280d3e CPU:00 COMM :REPLY_MESSAGE tid:1 pid:974897
t:0xc028147a CPU:00 THREAD :THREADY pid:974897 tid:1
t:0xc02f3c3a CPU:00 THREAD :THRUNNING pid:974897 tid:1
t:0xc033d978 CPU:00 THREAD :THRECEIVE pid:974897 tid:1
t:0xc0d23d45 CPU:00 COMM :SND_PULSE_DIS scoid:0x40000003 pid:974897
t:0xc0d254ff CPU:00 THREAD :THREADY pid:974897 tid:1
t:0xc124849c CPU:00 THREAD :THRUNNING pid:974897 tid:1
t:0xc12505a6 CPU:00 COMM :REC_PULSE scoid:0x40000003 pid:974897
t:0xc127d665 CPU:00 THREAD :THREPLY pid:974897 tid:1
t:0xc131846d CPU:00 COMM :REPLY_MESSAGE tid:1 pid:974897
t:0xc1319899 CPU:00 THREAD :THREADY pid:974897 tid:1
t:0xc15f1696 CPU:00 THREAD :THRUNNING pid:974897 tid:1
t:0xc16137f3 CPU:00 THREAD :THRECEIVE pid:974897 tid:1
path:/proc/974897/as
…
path:/proc/974897/as
t:0xcf974897 CPU:00 THREAD :THRECEIVE pid:1 tid:9
Кроме того, все действия протоколируются в IDE. Если выделить область с момента отправки сообщения серверу до момента приема ответа от него, то можно получить временную характеристику реакции сервера, что особенно важно при решении задач управления в реальном времени. Выделенная область занимает 272,214 мкс.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.