Книга: UNIX: разработка сетевых приложений

Сравнение времени выполнения различных версий функции str_cli

Сравнение времени выполнения различных версий функции str_cli

Итак, мы продемонстрировали четыре различных версии функции str_cli. Для каждой версии мы покажем время, которое потребовалось для ее выполнения, в том числе и для версии, использующей программные потоки (см. листинг 26.1). В каждом случае было скопировано 2000 строк от клиента Solaris к серверу с периодом RTT, равным 175 мс:

? 354,0 с, режим остановки и ожидания (см. листинг 5.4);

? 12,3 с, функция select и блокируемый ввод-вывод (см. листинг 6.2);

? 6,9 с, неблокируемый ввод-вывод (см. листинг 16.1);

? 8,7 с, функция fork (см. листинг 16.6);

? 8,5 с, версия с потоками (см. листинг 26.1).

Наша версия с неблокируемым вводом-выводом почти вдвое быстрее версии, использующей блокируемый ввод-вывод с функцией select. Наша простая версия с применением функции fork медленнее версии с неблокируемым вводом- выводом. Тем не менее, учитывая сложность кода неблокируемого ввода-вывода по сравнению с кодом функции fork, мы рекомендуем более простой подход.

Оглавление книги


Генерация: 1.401. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз