OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Среда, 24 Апрель, 2024 05:24

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Особенности работы TCP-сокетов
СообщениеДобавлено: Четверг, 03 Декабрь, 2009 16:51 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Принимающей стороной в тестах выступал Apache Benchmark.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Особенности работы TCP-сокетов
СообщениеДобавлено: Четверг, 03 Декабрь, 2009 17:03 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Ну вот, если вдруг этот Benchmark был редиской и вычитывал из сокета данные кусочками по 1024 байта, то при насыщении буфера и отправлять тоже значит можно было только такие же кусочки, не больше.

Попробуйте написать для тестов свой сверхскоростной приёмник...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Особенности работы TCP-сокетов
СообщениеДобавлено: Понедельник, 07 Декабрь, 2009 12:38 

Зарегистрирован: Среда, 31 Октябрь, 2007 18:58
Сообщения: 252
Откуда: Austria, Bruck
У меня скрипты на Питоне работают с сокетами раз в 10 быстрее, чем реализация на ББ.
Причем закономерность - чем меньше размер отсылаемого пакета, тем быстрее работает ББ.
Для пакета в 65к время задержки до 2 сек на ББ, и не более 0.2 сек на Питоне. И при этом ББ загружает ЦПК до 50-60%. BlackBox 1.6rc5
:?: :?: :?:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Особенности работы TCP-сокетов
СообщениеДобавлено: Понедельник, 07 Декабрь, 2009 13:50 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
hothing писал(а):
:?: :?: :?:
В ББ цикл опроса сокета 1 раз в 50 миллисекунд. Для больших скоростей нужно написать другую реализацию.
hothing писал(а):
не более 0.2 сек на Питоне
65К/0.2=300К/сек. Чёто тоже не впечатляет, совсем.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Особенности работы TCP-сокетов
СообщениеДобавлено: Понедельник, 07 Декабрь, 2009 16:17 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
У меня в локалке 1,5 - 2 Мб/с Apache benchmark показывает (параллельность "атаки" = 10 потоков).
На локалхосте - до 4 Мб.

Реализация - однопоточная, асинхронный опрос каналов (каналы надстроены над стандартными CommStreams).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Особенности работы TCP-сокетов
СообщениеДобавлено: Понедельник, 07 Декабрь, 2009 17:02 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Я стёр своё предыдущее собщение -- в нём была ошибка (сообщения маленькие были и большая часть времени CPU тратилось на их диспетчеризацию/сериализацию/десериализацию, а вовсе не на сокетный приём/отправку).

Перемерил скорость...

Итак, в моей реализации на C# скорости таковы:
под Windows XP SP3 -- 110 мегабайтов в секунду;
под линуксом (Debian) -- 150 мегабайтов в секунду.

Причём компьютер с линуксом у меня слабее (да и Mono тормознее чем Microsoft.Net), так что превосходство линуксовых сокетов над виндовыми на самом деле (при прочих равных) ещё больше чем 150/110 = 1.36.

Схема опыта: на одном компьютере открыто два сокета на 127.0.0.1, из одного в другой льётся трафик.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Особенности работы TCP-сокетов
СообщениеДобавлено: Понедельник, 07 Декабрь, 2009 17:47 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Увеличил размер сокетных буферов отправки и приёма до 4 Мб (по умолчанию они равны 128Кб). Скорость прокачки байтов через сокет под Windows XP SP3 подскочила до 168 мегабайтов в секунду. То есть превосходство линуксовых сокетов над виндозными исчезло.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Особенности работы TCP-сокетов
СообщениеДобавлено: Понедельник, 07 Декабрь, 2009 22:09 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Ну, на localhost вроде и должны быть такие скорости. Система должна гнать через разделяемые буфера памяти, и т.п.

А при здоровых буферах вообще DMA, кажется, может задействоваться на копирование областей памяти.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB