SRR client: vers. 1.03
server path: /net/rtp/dev/srr, block size = 10 bytes, repeat = 500
CPU speed [c.p.s.]: client = 534639500, server = 451163200
- message exchange: 642456 ~380313 {59%}
- manager exchange: 743094 ~423717 {57%}
# nice -n-19 cli -nrtp -b100 -m500
SRR client: vers. 1.03
server path: /net/rtp/dev/srr, block size = 100 bytes, repeat = 500
CPU speed [c.p.s.]: client = 534639500, server = 451163200
- message exchange: 878686 ~432230 {49%}
- manager exchange: 907474 ~420140 {46%}
# nice -n-19 cli -nrtp -b1000 -m500
SRR client: vers. 1.03
server path: /net/rtp/dev/srr, block size = 1000 bytes, repeat = 500
CPU speed [c.p.s.]: client = 534639500, server = 451163200
- message exchange: 2064542 ~358333 {17%}
- manager exchange: 2113638 ~372487 {18%}
# nice -n-19 cli -nrtp -b3000 -m200
SRR client: vers. 1.03
server path: /net/rtp/dev/srr, block size = 3000 bytes, repeat = 200
CPU speed [c.p.s.]: client = 534639500, server = 451163200
- message exchange: 4134249 ~418168 {10%}
- manager exchange: 4181481 ~418139 {10%}
# nice -n-19 cli -nrtp -b5000 -m200
SRR client: vers. 1.03
server path: /net/rtp/dev/srr, block size = 5000 bytes, repeat = 200
CPU speed [c.p.s.]: client = 534639500, server = 451163200
- message exchange: 5805056 ~252663 {4%}
- manager exchange: 5825837 ~229120 {4%}
# nice -n-19 cli -nrtp -b8000 -m200
SRR client: vers. 1.03
server path /net/rtp/dev/srr, block size = 8000 bytes, repeat = 200
CPU speed [c.p.s.]: client = 534639500, server = 451163200
- message exchange: 8741090 ~446299 {5%}
- manager exchange: 8788642 ~427459 {5%}
# nice -n-19 cli -nrtp -b10000 -m200
SRR client: vers. 1.03
server path: /net/rtp/dev/srr, block size = 10000 bytes, repeat = 200
CPU speed [c.p.s.]: client = 534639500, server = 451163200
- message exchange: 8971296 ~451857 {5%}
- manager exchange: 9731224 ~301409 {3%}
В этом варианте основной компонент задержки вносится передачей данных по физическому каналу; разница между реализациями обмена сообщениями и менеджера ресурсов в значительной степени нивелирована.
Наш второй клиент (
-d
) до прекращения его выполнения пользователем по
^C
. Результат его работы — средняя плотность потока информации за весь интервал работы.
#include "common.h"
static bool conti = true;
// завершение процесса по сигналу пользователя (SIGINT - ^C)
inline static void trap(int signo) { conti = false; }
int main(int argc, char **argv) {
cout << "SRR repeater: " << VERSION << endl;
int opt, val;
unsigned int blk = 100;
char PATH[_POSIX_PATH_MAX] = "";
bool lowlvl = true;
while ((opt = getopt(argc, argv, "n:b:d")) != -1) {
switch(opt) {