Dodatek A

W dodatku zaprezentowano fragment śladu wywołania funkcji systemowych dla aplikacji pingpong-gniazda, wysyłającej nagłowek zawierający rozmiar komunikatu przed właściwymi danymi. Ilustruje on nienaturalnie wysoki czas wywołania niektórych funkcji wysyłania i odbioru danych z gniazda (por. p. 7.7.5).

Rozmiar komunikatu w tym wywołaniu wynosił 16.

Ślad uzyskano poprzez wywołanie: strace -r

Liczba po lewej stronie oznacza czas spędzony w funkcji systemowej.




width


0.000047 socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 3

0.000072 connect(3, {sin_family=AF_INET, sin_port=htons(40000),

sin_addr=inet_addr("127.0.0.1")}}, 16) = 0

0.000665 sendmsg(3, { msg_iov(1)=[{"...", 16}],  msg_flags=0}, 0) = 16

0.000166 recvmsg(3, { msg_iov(1)=[{"...", 4}],  msg_flags=0}, 0) = 4

0.000071 sendmsg(3, { msg_iov(1)=[{"...", 4}],  msg_flags=0}, 0) = 4

0.000099 sendmsg(3, { msg_iov(1)=[{"...", 16}],  msg_flags=0}, 0) = 16

0.000066 recvmsg(3, { msg_iov(1)=[{"...", 4}],  msg_flags=0}, 0) = 4

0.038058 recvmsg(3, { msg_iov(1)=[{"...", 16}],  msg_flags=0}, 0) = 16

0.039988 sendmsg(3, { msg_iov(1)=[{"...", 4}],  msg_flags=0}, 0) = 4

0.000065 sendmsg(3, { msg_iov(1)=[{"...", 16}],  msg_flags=0}, 0) = 16

0.000063 recvmsg(3, { msg_iov(1)=[{"...", 4}],  msg_flags=0}, 0) = 4

0.039875 recvmsg(3, { msg_iov(1)=[{"...", 16}],  msg_flags=0}, 0) = 16

0.039996 sendmsg(3, { msg_iov(1)=[{"...", 4}],  msg_flags=0}, 0) = 4

0.000065 sendmsg(3, { msg_iov(1)=[{"...", 16}],  msg_flags=0}, 0) = 16

0.000065 recvmsg(3, { msg_iov(1)=[{"...", 4}],  msg_flags=0}, 0) = 4

0.039873 recvmsg(3, { msg_iov(1)=[{"...", 16}],  msg_flags=0}, 0) = 16

0.039996 sendmsg(3, { msg_iov(1)=[{"...", 4}],  msg_flags=0}, 0) = 4

0.000066 sendmsg(3, { msg_iov(1)=[{"...", 16}],  msg_flags=0}, 0) = 16

0.000064 recvmsg(3, { msg_iov(1)=[{"...", 4}],  msg_flags=0}, 0) = 4

0.039872 recvmsg(3, { msg_iov(1)=[{"...", 16}],  msg_flags=0}, 0) = 16

0.039997 sendmsg(3, { msg_iov(1)=[{"...", 4}],  msg_flags=0}, 0) = 4

0.000065 sendmsg(3, { msg_iov(1)=[{"...", 16}],  msg_flags=0}, 0) = 16

0.000064 recvmsg(3, { msg_iov(1)=[{"...", 4}],  msg_flags=0}, 0) = 4


width

Krzysztof Lichota 2002-06-24