powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / IdTCPServer отправить сообщение клиенту
25 сообщений из 116, страница 2 из 5
IdTCPServer отправить сообщение клиенту
    #40033413
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
SOFT FOR YOU
DmSer,

Я потратил множество времени, чтобы ознакомиться с текущими решениями
Смотрел и Synopse, и ICS, и TMS, и RTC. И много чего другого
Тот же ICS он только под винду
Асинхронных сокетов нормальных нет почти нигде
С веб сокетами тоже труба
В Indy на каждый коннект создаётся поток. Будет на серваке 1000 соединений и всё - труба


RTC держит сотни тысяч коннектов одновременно
при этом у них в демках есть софтина для стресс-тестирования

и да, иди снова изучай
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033416
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тот же ICS он только под винду

Автор вроде пилит кроссплатформу. Не знаю, на каком сейчас этапе.

В Indy на каждый коннект создаётся поток. Будет на серваке 1000 соединений и всё - труба

Неправда. Если мы разрабатываем 64-битное приложение, то Indy может держать десятки тысяч подключений. На каждое подключение создаётся доп. поток, но ОЗУ он жрет не более 100 КБ. К сожалению, максимальное количество подключений на одном (и даже на двух компьютерах) не измеришь. Чтобы измерить, нужно один комп "сервер" и десяток компов-клиентов. Может Indy и 100 тыс. одновременных TCP-коннектов потянет (здесь конечно большие затраты будут на работу системного планировщика).
Но, конечно, скорость обработки http-запросов в Indy значительно меньше, чем у других.

Оказалось, нода в 500 раз быстрее. Что-то типа такого

Видимо, он сравнивал с Indy. Там очень большие расходы из-за создания и уничтожения доп. потоков. Ну и по другим причинам.
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033417
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU
В Indy на каждый коннект создаётся поток. Будет на серваке 1000 соединений и всё - труба

Даже в 32-битном процессе можно создать сильно больше потоков, не говоря уж о 64-битном.

DmSer
(здесь конечно большие затраты будут на работу системного планировщика)

Ожидающие событий от системных объектов потоки на производительность не влияют.

DmSer
Видимо, он сравнивал с Indy. Там очень большие расходы из-за создания и уничтожения доп. потоков. Ну и по другим причинам.

В инди есть поддержка пула потоков, вообще то.
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033418
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator,

Ну RTC по сравнению с другими либами очень даже ничего
Но во-первых, он платный
Во-вторых, держать то он может и держит, но работает неэффективно, а значит реальная пропускная способность небольшая. На сайте тесты до 5000 соединений
Ну и в-третьих, там ещё что-то было, сходу не вспомню

В целом во многих либах, в том числе бесплатных, есть что почерпнуть. Но общая картина удручает
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033419
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSer,
Kazantsev Alexey,

Потоки - это объекты операционной системы, которым нужно отводить тик времени, адресное пространство, оркестрировать
Поэтому в сколько-нибудь серьёзных проектах переходят к задачам поверх пула потоков, например
Но поскольку дельфийские задачи тоже далеки от идеала - лучше использовать узкозаточенную реализацию
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033420
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
SOFT FOR YOU
defecator,

Ну RTC по сравнению с другими либами очень даже ничего
Но во-первых, он платный
Во-вторых, держать то он может и держит, но работает неэффективно, а значит реальная пропускная способность небольшая. На сайте тесты до 5000 соединений
Ну и в-третьих, там ещё что-то было, сходу не вспомню

В целом во многих либах, в том числе бесплатных, есть что почерпнуть. Но общая картина удручает


что там тебя удручает ?

есть zeroMQ, который сверхбыстрый, и с прекрасной обёрткой
https://github.com/grijjy/DelphiZeroMQ

разве ты сможешь написать что-то быстрее этого ?
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033422
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU
Потоки - это объекты операционной системы, которым нужно отводить тик времени, адресное пространство, оркестрировать

1. Ожидающим потокам тик не нужен. Они из планирования исключаются.
2. Адресное пространство на 64-битах не проблема, а на 32 оно скорее будет исчерпано под хранение состояния, если, конечно, речь не идёт о примитивном эхо-сервере.
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033424
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator,

ZeroMQ тоже может не всё
Тем более он зависим от динамических библиотек
По поводу производительности...
Ты юзал мой CPF, как сам думаешь?

Вопрос не в моих навыках оптимизатора
Вопрос в том, хватит ли мотивации, сил и времени на реализацию
И в этом смысле командная работа как решает данный вопрос
Получится нет - увидим
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033425
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey,

Ну давай сравним 5000 соединений на ноде и 5000 соединений на дельфийских потоках
Создавать поток на каждое соединение - это древность. Не знаю, сейчас кто-то использует этот подход кроме наших или нет
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033426
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
SOFT FOR YOU
defecator,

ZeroMQ тоже может не всё


не может всё - это чего же такое это "всё" ?

SOFT FOR YOU

Тем более он зависим от динамических библиотек

любая твоя библиотека всё равно будет зависима от системных библиотек

SOFT FOR YOU

Вопрос не в моих навыках оптимизатора
Вопрос в том, хватит ли мотивации, сил и времени на реализацию
И в этом смысле командная работа как решает данный вопрос
Получится нет - увидим

вопрос - зачем ? оптимизация ради оптимизации ?
или тебе просто нечем больше заняться ?
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033428
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторZeroMQ тоже может не всё
Тем более он зависим от динамических библиотек
Дайте ему селёдки! - (с).
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033429
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator,

Очень хороший вопрос
Если говорить про сейчас, то у нас 4 человека (как будет дальше - посмотрим). Мотивации следующие:
1. На имеющемся серваке растёт количество клиентов, сервак начинает захлёбываться. Нужно добавить асинхронные сокеты + добавить поддержку REST/JSON (через http.sys)
2. Человек является начальником отдела разработки, много кода на Delphi, очень много клиентов. Есть желание продолжить на Delphi, но подчинённые прислали тест, где Node выигрывает Delphi на порядки
3. Интерес в профессиональном росте: погружение в сетевые технологии, инструменты и особенности командной разработки
4. У меня есть 2 потенциальных клиента (компании), которые активно пишут сервера на Delphi. Мне хотелось бы сотрудничать с ними, но предложить пока нечего
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033430
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU
Ну давай сравним...

Сравнивай на здоровье...
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033431
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey,

Ну не я же говорю, что потоки это не проблема )
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033432
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU
defecator,

Очень хороший вопрос
Если говорить про сейчас, то у нас 4 человека (как будет дальше - посмотрим). Мотивации следующие:
1. На имеющемся серваке растёт количество клиентов, сервак начинает захлёбываться. Нужно добавить асинхронные сокеты + добавить поддержку REST/JSON (через http.sys)
2. Человек является начальником отдела разработки, много кода на Delphi, очень много клиентов. Есть желание продолжить на Delphi, но подчинённые прислали тест, где Node выигрывает Delphi на порядки
3. Интерес в профессиональном росте: погружение в сетевые технологии, инструменты и особенности командной разработки
4. У меня есть 2 потенциальных клиента (компании), которые активно пишут сервера на Delphi. Мне хотелось бы сотрудничать с ними, но предложить пока нечего
Много клиентов - можно использовать порты завершения, IO Completion Ports. Пишут, что эффективная вещь.
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033435
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU
Ну не я же говорю, что потоки это не проблема

Конечно не проблема, проблема в том, как их готовят. Уже и про сокетную асинхронщину разговоры пошли... Удачи, короче, вам. С джирой, конфлюенсом и скрамом три раза в неделю, она вам понадобится.
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033438
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey,

Не понял, к чему злорадство
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033440
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s62,

Совершенно верно
IOCP под виндой
epoll на Linux
kqueue на FreeBSD/MacOS
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033443
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU
Не понял, к чему злорадство

Злорадство, это когда радуются чужой неудаче.
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033444
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey,

Заваливайся в сообщество
Там такие темы, например, обсуждать сподручнее
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033445
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
SOFT FOR YOU
Kazantsev Alexey,

Заваливайся в сообщество
Там такие темы, например, обсуждать сподручнее

а здесь ТАКИЕ темы обсуждать "несподручнее" ?
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033446
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
SOFT FOR YOU

4. У меня есть 2 потенциальных клиента (компании), которые активно пишут сервера на Delphi. Мне хотелось бы сотрудничать с ними, но предложить пока нечего


если они активно пишут сервера на Дельфи, то нафига им нужен ты ?
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033448
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SOFT FOR YOU
Kazantsev Alexey,

Заваливайся в сообщество
Там такие темы, например, обсуждать сподручнее

Категорически не советую:
SOFT FOR (конкретно) - не просто токсичный пустозвон, он - опасен как партнёр. Например, напомню, что его "знаменитый" фри-опенсорсе менеджер памяти ... неожиданно заброшен с требованием заплатить ему $5000-$10000.
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033449
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator,

Конкретно в данный момент тема является офтопом
ТС спросил об одном, а речь о потоках и библиотеках

Сервера - это большая нагрузка
А большая нагрузка - это тонна оптимизаций
Плюс у меня много наработок по RTTI. А значит с лёгкой руки можно упростить обмен сообщениями между клиентом и сервером. Упростить, ускорить, повысить надёжность и обратную совместимость
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033450
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU
Заваливайся в сообщество

Телега не нужна.
...
Рейтинг: 0 / 0
25 сообщений из 116, страница 2 из 5
Форумы / Delphi [игнор отключен] [закрыт для гостей] / IdTCPServer отправить сообщение клиенту
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]