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

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

Сервера - это большая нагрузка
А большая нагрузка - это тонна оптимизаций
Плюс у меня много наработок по RTTI. А значит с лёгкой руки можно упростить обмен сообщениями между клиентом и сервером. Упростить, ускорить, повысить надёжность и обратную совместимость


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

Партнёрство, это не когда 1 пилит, а другой юзает
Партнёрство это когда оба пилят, либо один пилит, а другой платит. Вот ты сколько заплатил, чтобы такое орать? )

P.S. я кстати всё лето фигачил новую версию менеджера на Си
На данный момент процесс застопорился потому, что не могу найти WordPress-ника, который сможет наладить платную подписку на сайте. И тестового фреймворка пока нет, чтобы не обращался к менеджеру. Так что если кто может чем-то помочь (запартнёриться) - тоже жду в личке!
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033454
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
SOFT FOR YOU
ъъъъъ,

Партнёрство, это не когда 1 пилит, а другой юзает
Партнёрство это когда оба пилят, либо один пилит, а другой платит. Вот ты сколько заплатил, чтобы такое орать?


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

Ты рассуждаешь простыми категориями
Где простой бизнес-процесс и не так много клиентов
Там основная оптимизация - это добавление пары индексов и закупка немного оперативной памяти

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

Ты рассуждаешь простыми категориями
Где простой бизнес-процесс и не так много клиентов
Там основная оптимизация - это добавление пары индексов и закупка немного оперативной памяти

Когда проекты действительно большие, когда клиентов тысячи, а производительность оседает в микросервисах, работающих с кешем данных - тогда сложности совершенно другие
Производительность - весомая задача, но единственная из весомых
И речь не о серверных приложениях в Delphi. Это касается любых языков программирования
Просто многие языки уже обзавелись хорошими библиотеками


в Дельфи тоже полно отличных высокоскоростных сетевых библиотек - RTC и ZeroMQ тому примеры
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033457
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
defecator
SOFT FOR YOU
defecator,

Ты рассуждаешь простыми категориями
Где простой бизнес-процесс и не так много клиентов
Там основная оптимизация - это добавление пары индексов и закупка немного оперативной памяти

Когда проекты действительно большие, когда клиентов тысячи, а производительность оседает в микросервисах, работающих с кешем данных - тогда сложности совершенно другие
Производительность - весомая задача, но единственная из весомых
И речь не о серверных приложениях в Delphi. Это касается любых языков программирования
Просто многие языки уже обзавелись хорошими библиотеками


в Дельфи тоже полно отличных высокоскоростных сетевых библиотек - RTC и ZeroMQ тому примеры

RTC - чисто дельфийская библиотека, а zmq - хотя и бесплатная, но лишь дейфийские оболочки над сишным ядром (dll или obj). Функционал и возможности довольно близки)вывод по результатам моих верхоглядных оценок). Я бы, наверное, для своих задач выбрал RTC (функционал именно в нужной мне части богаче), если бы давным-давно не юзал zmq. :)

К zmq "прилагаются" интересные книги и статьи, которые, хоть и опираются на zmq, рассматривают общие принципы разработки и построения высокопроизводительных распределенных систем, и нигде не решаются "проблемы", плавающие в мутни воспалённого мозга пустозвона - "оптимизатора".
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033458
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во всех популярных ЯП появилось асинхронное программирование (на основе async / await или наподобие). Это полностью устранило проблему высокой сложности разработки серверов на асинхронных алгоритмах. В Delphi такого механизма на уровне языка пока нет. Поэтому юзаем Indy. Очередная асинхронная сетевая либа не спасёт.
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033459
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ъъъъъ
defecator
пропущено...


в Дельфи тоже полно отличных высокоскоростных сетевых библиотек - RTC и ZeroMQ тому примеры

RTC - чисто дельфийская библиотека, а zmq - хотя и бесплатная, но лишь дейфийские оболочки над сишным ядром (dll или obj). Функционал и возможности довольно близки)вывод по результатам моих верхоглядных оценок). Я бы, наверное, для своих задач выбрал RTC (функционал именно в нужной мне части богаче), если бы давным-давно не юзал zmq. :)

К zmq "прилагаются" интересные книги и статьи, которые, хоть и опираются на zmq, рассматривают общие принципы разработки и построения высокопроизводительных распределенных систем, и нигде не решаются "проблемы", плавающие в мутни воспалённого мозга пустозвона - "оптимизатора".

Задачи сетевых оптимизаций решаются всегда алгоримами обмена и выбором топологий, а вовсе не в "оптимизаци кода микросервисов".
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033460
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ъъъъъ
ъъъъъ
пропущено...

RTC - чисто дельфийская библиотека, а zmq - хотя и бесплатная, но лишь дейфийские оболочки над сишным ядром (dll или obj). Функционал и возможности довольно близки)вывод по результатам моих верхоглядных оценок). Я бы, наверное, для своих задач выбрал RTC (функционал именно в нужной мне части богаче), если бы давным-давно не юзал zmq. :)

К zmq "прилагаются" интересные книги и статьи, которые, хоть и опираются на zmq, рассматривают общие принципы разработки и построения высокопроизводительных распределенных систем, и нигде не решаются "проблемы", плавающие в мутни воспалённого мозга пустозвона - "оптимизатора".

Задачи сетевых оптимизаций решаются всегда алгоримами обмена и выбором топологий, а вовсе не в "оптимизаци кода микросервисов".

Хотя, как-то было дело... :)
Отлаживал алгоритм протокола загрузки файлов из хранилища mega.nz ... на питоне. Вымораживала постоянная задержка, что только не пытался... оказалось, что это питон "в чистом виде" такой плавный... (выполнялось дешифрование данных на лету) :)
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033473
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSer
(здесь конечно большие затраты будут на работу системного планировщика)

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

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

Насколько я помню, используются разные списки потоков.
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033476
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSer
Во всех популярных ЯП появилось асинхронное программирование (на основе async / await или наподобие). Это полностью устранило проблему высокой сложности разработки серверов на асинхронных алгоритмах. В Delphi такого механизма на уровне языка пока нет. Поэтому юзаем Indy. Очередная асинхронная сетевая либа не спасёт.
А чем тебя не устраивает текущие возможности делфи? Что, разве делфи не позволяет использовать "асинхронное программирование"? Или ты так сильно страдаешь от того, что не можешь писать асинхронный код в стиле синхронного?
Вот честно ничего не понял.

И Indy не единственная библиотека, с помощью которой можно делать сетевые сервисы. Вот специально для тебя пример описания создания в делфи высокоскоростного UDP сервера на виндах и линуксе
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033483
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSer
Во всех популярных ЯП появилось асинхронное программирование (на основе async / await или наподобие). Это полностью устранило проблему высокой сложности разработки серверов на асинхронных алгоритмах. В Delphi такого механизма на уровне языка пока нет. Поэтому юзаем Indy. Очередная асинхронная сетевая либа не спасёт.
System.Threading не предлагать?
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033485
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSer
Во всех популярных ЯП появилось асинхронное программирование (на основе async / await или наподобие). Это полностью устранило проблему высокой сложности разработки серверов на асинхронных алгоритмах. В Delphi такого механизма на уровне языка пока нет. Поэтому юзаем Indy. Очередная асинхронная сетевая либа не спасёт.


Мне кажется, здесь смешались кони и люди
Если ты подразумеваешь концепцию задач - то она как раз есть в Delphi. Может быть там не всё идеально по производительности, но с заложенной функциональностью справляется, и юзать удобно. Там пул потоков, список задач, замыкания (анонимки).

Если говорить про сетевой буст (IOCP/epoll/kqueue, http.sys и др.) - то они в Delphi худо-бедно, но тоже есть.

Если говорить про высокую нагрузку, то неплохие решения от TMS и RTC
Но Node их всё равно сделает, причём в разы. К тому же придётся заплатить бабла
Я же хочу сделать бесплатно и примерно на уровне
В теории, с учетом особенности менеджера в ноде, можно и быстрее. Но меня сейчас опять заклюют, типа я говорю о неосуществимых вещах )
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033488
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
SOFT FOR YOU
DmSer
Во всех популярных ЯП появилось асинхронное программирование (на основе async / await или наподобие). Это полностью устранило проблему высокой сложности разработки серверов на асинхронных алгоритмах. В Delphi такого механизма на уровне языка пока нет. Поэтому юзаем Indy. Очередная асинхронная сетевая либа не спасёт.


Мне кажется, здесь смешались кони и люди
Если ты подразумеваешь концепцию задач - то она как раз есть в Delphi. Может быть там не всё идеально по производительности, но с заложенной функциональностью справляется, и юзать удобно. Там пул потоков, список задач, замыкания (анонимки).

Если говорить про сетевой буст (IOCP/epoll/kqueue, http.sys и др.) - то они в Delphi худо-бедно, но тоже есть.

Если говорить про высокую нагрузку, то неплохие решения от TMS и RTC
Но Node их всё равно сделает, причём в разы. К тому же придётся заплатить бабла
Я же хочу сделать бесплатно и примерно на уровне
В теории, с учетом особенности менеджера в ноде, можно и быстрее. Но меня сейчас опять заклюют, типа я говорю о неосуществимых вещах )


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

Другой разговор
А я жду, что вы не только будете ждать
Но и участвовать как-то

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

Насколько я помню, используются разные списки потоков.


Это касается только потоков, готовых к немедленному выполнению (ready-потоки). Таких обычно немного. Это те потоки, у которых закончился таймаут ожидания, или которые ожидали на объекте синхронизации ядра и были разбужены (например при вызове SetEvent или ReleaseMutex из другого потока). Такие потоки заранее помещаются планировщиком в очередь для какого-то ядра, поэтому дальнейшая процедура их пробуждения очень проста и действительно не зависит от количества других потоков.

Остальные потоки (спящие) в ready-очереди не помещаются, но планировщик при каждом срабатывании системного таймера анализирует по ним информацию (как минимум, проверяет, не закончился ли sleep-интервал).
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033495
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
SOFT FOR YOU
defecator,

Другой разговор
А я жду, что вы не только будете ждать
Но и участвовать как-то

Ну не конкретно ты
А вообще люди, которым интересна тема


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

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

Совершенно верно
У нас 4 человека
Я описал мотивацию каждого из них. Вполне конкретно

ага, что ты решил потренироваться в эджайле и командной разработке
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033498
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asutp2
DmSer
Во всех популярных ЯП появилось асинхронное программирование (на основе async / await или наподобие). Это полностью устранило проблему высокой сложности разработки серверов на асинхронных алгоритмах. В Delphi такого механизма на уровне языка пока нет. Поэтому юзаем Indy. Очередная асинхронная сетевая либа не спасёт.
А чем тебя не устраивает текущие возможности делфи? Что, разве делфи не позволяет использовать "асинхронное программирование"? Или ты так сильно страдаешь от того, что не можешь писать асинхронный код в стиле синхронного?
Вот честно ничего не понял.

И Indy не единственная библиотека, с помощью которой можно делать сетевые сервисы. Вот специально для тебя пример описания создания в делфи высокоскоростного UDP сервера на виндах и линуксе


Лично мне пока хватало возможностей Indy. У меня не было необходимости решать задачу обслуживания 10000 http-запросов в секунду. Я считаю, что возможности "писать асинхронный код в стиле синхронного" не хватает. Но я понимаю, что в Delphi этой возможности никогда и не будет, поскольку если её реализуют, будет только хуже (кучу всего поломают в угоду задач, которые на Delphi решаются очень редко).

Имеющиеся библиотеки для Delphi позволяют писать асинхронный код в стиле промайзов из JavaScript (например, OTL с его функциями async и await). Но промайзы в чистом виде в JS сейчас никто не использует, т.к. появился async / await, который гораздо нагляднее, в синхронном стиле, и не приводит к callback hell. Это при том, что в JS нет многопоточности. Всё работает в рамках одного потока!
...
Рейтинг: 0 / 0
IdTCPServer отправить сообщение клиенту
    #40033500
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator,

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

Я практикуюсь в эджайле и командной разработке у себя на работе - у меня роль Скрам Мастера
Нафига ты набрасываешь - не понятно

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

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

Многопоточность в JS есть, просто она сильно спрятана
Никто не мешает похожий подход использовать и в Delphi


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


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