Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.03.2010, 02:30
Deusex Deusex вне форума
Прохожий
 
Регистрация: 08.03.2010
Сообщения: 5
Репутация: 10
Восклицание Процессорное время. WSARecv, WSAsend, Indy TCPServer, HTTPServer

Создаю производительный веб-сервер. Для чего и почему не использую существующие - это выходит за рамки этой темы.

Использую компоненты Indy.
c включенным KeepAlive (без него результаты в 2 раза хуже) сервер способен обработать не более 5000 запросов в секунду (тестировал с помощью утилиты ab.exe ApacheBench).

Основная нагрузка идет на процессор (100% нагрузка на все ядра).
Основное время отжирается функциями winsock: WSASend и WSARecv
Это означает, что проблема не в Indy

Достоверно известно, что на этом же железе nginx обрабатывает более 10000 запросов в секунду.
А некоторые роутеры, способны обрабатывать и более 300 000 запросов в секунду.

Вопросы:
1) Возможно ли каким-либо образом ускорить работу WSASend и WSARecv?
2) Как обойти эти команды, не использовать их вообще? Я так понимаю, что для этого нужно писать свой драйвер, может у кого-то есть документация или примеры?.
3) Может проблему можно решить переписав код на Lazarus и запустить это всё дело под FreeBSD (там уж точно нету WSASend).
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 05:53.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025