Сравнение времени выполнения различных версий функции 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, мы рекомендуем более простой подход.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

15.6. Отладка времени выполнения

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

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


15.6. Отладка времени выполнения

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

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


7.15 Сравнение моментов времени

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

7.15 Сравнение моментов времени К классу Time подмешан модуль Comparable, поэтому моменты времени можно сравнивать непосредственно:t0 = Time.local(2000,11,10,22,15) # 10 Nov 2000 22:15t1 = Time.local(2000,11,9,23,45)  # 9 Nov 2000 23:45t2 = Time.local(2000,11,12,8,10)  # 12 Nov 2000 8:10t3 = Time.local(2000,11,11,10,25) # 11 Nov 2000 10:25if t0 < t1 then puts "t0 < t1" endif t1 != t2 then


14. Предпочитайте ошибки компиляции и компоновки ошибкам времени выполнения

Из книги Стандарты программирования на С++. 101 правило и рекомендация автора Александреску Андрей

14. Предпочитайте ошибки компиляции и компоновки ошибкам времени выполнения РезюмеНе стоит откладывать до выполнения программы выявление ошибок, которые можно обнаружить при ее сборке. Предпочтительно писать код, который использует компилятор для проверки инвариантов


Использование средств удаленного администрирования для настройки различных версий Linux

Из книги Сетевые средства Linux автора Смит Родерик В.

Использование средств удаленного администрирования для настройки различных версий Linux Все инструментальные средства, рассматриваемые в этой главе, могут работать с различными версиями Linux. Основная трудность, возникающая при этом, состоит в том, что в программе


6.2.2. Раскрытие возможностей времени выполнения

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

6.2.2. Раскрытие возможностей времени выполнения Многие системные возможности имеют ограничения, другие являются необязательными, а некоторые могут содержать связанную с ними информацию. Ограничение на длину строки аргументов, передаваемых новой программе, защищает


1.23. Указание варианта библиотеки времени выполнения

Из книги C++. Сборник рецептов автора Диггинс Кристофер

1.23. Указание варианта библиотеки времени выполнения ПроблемаВаш инструментарий поставляется с несколькими вариантами базовых библиотек времени выполнения, и вы хотите указать компилятору и компоновщику тот вариант, который должен использоваться.РешениеБиблиотеки


1.3.2. Особенности установки различных версий Fedora Core

Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич

1.3.2. Особенности установки различных версий Fedora Core Fedora Core 2: подготовка к совместной жизни с WindowsЕсли вы собираетесь держать на одном компьютере ОС Windows и Fedora Core 2, то не торопитесь устанавливать FC 2. Дело в том, что программа-инсталлятор этой версии дистрибутива по-своему


3.4. Функции даты и времени

Из книги MySQL 5.0. Библиотека программиста автора Гольцман Виктор Иосифович

3.4. Функции даты и времени В данном разделе мы рассмотрим некоторые полезные функции, выполняющие различные операции с датами: получение текущей даты и/или времени, получение отдельных компонентов даты и/или времени, арифметические операции с датами (сложение, вычитание)


Совместимость клиентов и серверов различных версий

Из книги Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/FireBird/Yaffil автора Ковязин Алексей Николаевич

Совместимость клиентов и серверов различных версий Как известно, клиент-серверное приложение, использующее СУБД InterBase, обычно состоит из двух основных частей - клиентской и серверной. Клиентская часть, обычно состоящая из исполняемого модуля приложения базы данных (как


Сравнение различных систем межпроцессного взаимодействия

Из книги Операционная система UNIX автора Робачевский Андрей М.

Сравнение различных систем межпроцессного взаимодействия Заканчивая разговор о межпроцессном взаимодействии в UNIX, приведем сводную сравнительную таблицу рассмотренных систем. Каналы FIFO Сообщения Разделяемая память Сокеты (домен UNIX) Пространство имен — Имя


Более простая версия функции str_cli

Из книги UNIX: разработка сетевых приложений автора Стивенс Уильям Ричард

Более простая версия функции str_cli Неблокируемая версия функции str_cli, которую мы только что показали, нетривиальна: около 135 строк кода по сравнению с 40 строками версии, использующей функцию select с блокируемым вводом-выводом (см. листинг 6.2), и 20 строками начальной версии,


26.3. Использование потоков в функции str_cli

Из книги UNIX — универсальная среда программирования автора Пайк Роб

26.3. Использование потоков в функции str_cli В качестве первого примера использования потоков мы перепишем нашу функцию str_cli. В листинге 16.6 была представлена версия этой функции, в которой использовалась функция fork. Напомним, что были также представлены и некоторые другие


8.7 Оценка времени выполнения

Из книги Идеальный программист. Как стать профессионалом разработки ПО автора Мартин Роберт С.

8.7 Оценка времени выполнения Мы сравнивали hoc с другими программами-калькуляторами UNIX, чтобы приблизительно оценить, насколько хорошо он работает. К таблице, представленной ниже (табл. 8.1), можно, конечно, отнестись скептически, но она показывает "разумность" нашей


Оценка времени выполнения

Из книги автора

Оценка времени выполнения Майк и Питер совершили ужасную ошибку. Майк спрашивает Питера, сколько времени ему потребуется на выполнение работы. Питер дал честный ответ с тремя переменными, но как насчет мнения его коллег? Может, у них есть свое мнение по этому поводу?Самый