|
|
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU defecator, Конкретно в данный момент тема является офтопом ТС спросил об одном, а речь о потоках и библиотеках Сервера - это большая нагрузка А большая нагрузка - это тонна оптимизаций Плюс у меня много наработок по RTTI. А значит с лёгкой руки можно упростить обмен сообщениями между клиентом и сервером. Упростить, ускорить, повысить надёжность и обратную совместимость то есть ты уже заранее уверен, что у людей, которые пишут сервера на Дельфи - всё плохо в плане производительности ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2021, 18:57 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
ъъъъъ, Партнёрство, это не когда 1 пилит, а другой юзает Партнёрство это когда оба пилят, либо один пилит, а другой платит. Вот ты сколько заплатил, чтобы такое орать? ) P.S. я кстати всё лето фигачил новую версию менеджера на Си На данный момент процесс застопорился потому, что не могу найти WordPress-ника, который сможет наладить платную подписку на сайте. И тестового фреймворка пока нет, чтобы не обращался к менеджеру. Так что если кто может чем-то помочь (запартнёриться) - тоже жду в личке! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2021, 19:03 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU ъъъъъ, Партнёрство, это не когда 1 пилит, а другой юзает Партнёрство это когда оба пилят, либо один пилит, а другой платит. Вот ты сколько заплатил, чтобы такое орать? ты ведь сам больше всех орал, что у тебя самый быстрый менеджер памяти в мире возможно, это так, но он почему-то так и не работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2021, 19:08 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
defecator, Ты рассуждаешь простыми категориями Где простой бизнес-процесс и не так много клиентов Там основная оптимизация - это добавление пары индексов и закупка немного оперативной памяти Когда проекты действительно большие, когда клиентов тысячи, а производительность оседает в микросервисах, работающих с кешем данных - тогда сложности совершенно другие Производительность - весомая задача, но не единственная из весомых И речь не о серверных приложениях в Delphi. Это касается любых языков программирования Просто многие языки уже обзавелись хорошими библиотеками ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2021, 19:10 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU defecator, Ты рассуждаешь простыми категориями Где простой бизнес-процесс и не так много клиентов Там основная оптимизация - это добавление пары индексов и закупка немного оперативной памяти Когда проекты действительно большие, когда клиентов тысячи, а производительность оседает в микросервисах, работающих с кешем данных - тогда сложности совершенно другие Производительность - весомая задача, но единственная из весомых И речь не о серверных приложениях в Delphi. Это касается любых языков программирования Просто многие языки уже обзавелись хорошими библиотеками в Дельфи тоже полно отличных высокоскоростных сетевых библиотек - RTC и ZeroMQ тому примеры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2021, 19:12 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
defecator SOFT FOR YOU defecator, Ты рассуждаешь простыми категориями Где простой бизнес-процесс и не так много клиентов Там основная оптимизация - это добавление пары индексов и закупка немного оперативной памяти Когда проекты действительно большие, когда клиентов тысячи, а производительность оседает в микросервисах, работающих с кешем данных - тогда сложности совершенно другие Производительность - весомая задача, но единственная из весомых И речь не о серверных приложениях в Delphi. Это касается любых языков программирования Просто многие языки уже обзавелись хорошими библиотеками в Дельфи тоже полно отличных высокоскоростных сетевых библиотек - RTC и ZeroMQ тому примеры RTC - чисто дельфийская библиотека, а zmq - хотя и бесплатная, но лишь дейфийские оболочки над сишным ядром (dll или obj). Функционал и возможности довольно близки)вывод по результатам моих верхоглядных оценок). Я бы, наверное, для своих задач выбрал RTC (функционал именно в нужной мне части богаче), если бы давным-давно не юзал zmq. :) К zmq "прилагаются" интересные книги и статьи, которые, хоть и опираются на zmq, рассматривают общие принципы разработки и построения высокопроизводительных распределенных систем, и нигде не решаются "проблемы", плавающие в мутни воспалённого мозга пустозвона - "оптимизатора". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2021, 19:30 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
Во всех популярных ЯП появилось асинхронное программирование (на основе async / await или наподобие). Это полностью устранило проблему высокой сложности разработки серверов на асинхронных алгоритмах. В Delphi такого механизма на уровне языка пока нет. Поэтому юзаем Indy. Очередная асинхронная сетевая либа не спасёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2021, 19:32 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
ъъъъъ defecator пропущено... в Дельфи тоже полно отличных высокоскоростных сетевых библиотек - RTC и ZeroMQ тому примеры RTC - чисто дельфийская библиотека, а zmq - хотя и бесплатная, но лишь дейфийские оболочки над сишным ядром (dll или obj). Функционал и возможности довольно близки)вывод по результатам моих верхоглядных оценок). Я бы, наверное, для своих задач выбрал RTC (функционал именно в нужной мне части богаче), если бы давным-давно не юзал zmq. :) К zmq "прилагаются" интересные книги и статьи, которые, хоть и опираются на zmq, рассматривают общие принципы разработки и построения высокопроизводительных распределенных систем, и нигде не решаются "проблемы", плавающие в мутни воспалённого мозга пустозвона - "оптимизатора". Задачи сетевых оптимизаций решаются всегда алгоримами обмена и выбором топологий, а вовсе не в "оптимизаци кода микросервисов". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2021, 19:36 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
ъъъъъ ъъъъъ пропущено... RTC - чисто дельфийская библиотека, а zmq - хотя и бесплатная, но лишь дейфийские оболочки над сишным ядром (dll или obj). Функционал и возможности довольно близки)вывод по результатам моих верхоглядных оценок). Я бы, наверное, для своих задач выбрал RTC (функционал именно в нужной мне части богаче), если бы давным-давно не юзал zmq. :) К zmq "прилагаются" интересные книги и статьи, которые, хоть и опираются на zmq, рассматривают общие принципы разработки и построения высокопроизводительных распределенных систем, и нигде не решаются "проблемы", плавающие в мутни воспалённого мозга пустозвона - "оптимизатора". Задачи сетевых оптимизаций решаются всегда алгоримами обмена и выбором топологий, а вовсе не в "оптимизаци кода микросервисов". Хотя, как-то было дело... :) Отлаживал алгоритм протокола загрузки файлов из хранилища mega.nz ... на питоне. Вымораживала постоянная задержка, что только не пытался... оказалось, что это питон "в чистом виде" такой плавный... (выполнялось дешифрование данных на лету) :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2021, 19:41 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
DmSer (здесь конечно большие затраты будут на работу системного планировщика) Ожидающие событий от системных объектов потоки на производительность не влияют. Нагрузка ложится на планировщик, который при каждом срабатывании таймера лопатит все потоки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2021, 21:30 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
DmSer Нагрузка ложится на планировщик, который при каждом срабатывании таймера лопатит все потоки. Насколько я помню, используются разные списки потоков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2021, 21:35 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
DmSer Во всех популярных ЯП появилось асинхронное программирование (на основе async / await или наподобие). Это полностью устранило проблему высокой сложности разработки серверов на асинхронных алгоритмах. В Delphi такого механизма на уровне языка пока нет. Поэтому юзаем Indy. Очередная асинхронная сетевая либа не спасёт. Вот честно ничего не понял. И Indy не единственная библиотека, с помощью которой можно делать сетевые сервисы. Вот специально для тебя пример описания создания в делфи высокоскоростного UDP сервера на виндах и линуксе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2021, 21:43 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
DmSer Во всех популярных ЯП появилось асинхронное программирование (на основе async / await или наподобие). Это полностью устранило проблему высокой сложности разработки серверов на асинхронных алгоритмах. В Delphi такого механизма на уровне языка пока нет. Поэтому юзаем Indy. Очередная асинхронная сетевая либа не спасёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2021, 22:15 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
DmSer Во всех популярных ЯП появилось асинхронное программирование (на основе async / await или наподобие). Это полностью устранило проблему высокой сложности разработки серверов на асинхронных алгоритмах. В Delphi такого механизма на уровне языка пока нет. Поэтому юзаем Indy. Очередная асинхронная сетевая либа не спасёт. Мне кажется, здесь смешались кони и люди Если ты подразумеваешь концепцию задач - то она как раз есть в Delphi. Может быть там не всё идеально по производительности, но с заложенной функциональностью справляется, и юзать удобно. Там пул потоков, список задач, замыкания (анонимки). Если говорить про сетевой буст (IOCP/epoll/kqueue, http.sys и др.) - то они в Delphi худо-бедно, но тоже есть. Если говорить про высокую нагрузку, то неплохие решения от TMS и RTC Но Node их всё равно сделает, причём в разы. К тому же придётся заплатить бабла Я же хочу сделать бесплатно и примерно на уровне В теории, с учетом особенности менеджера в ноде, можно и быстрее. Но меня сейчас опять заклюют, типа я говорю о неосуществимых вещах ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2021, 22:36 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU DmSer Во всех популярных ЯП появилось асинхронное программирование (на основе async / await или наподобие). Это полностью устранило проблему высокой сложности разработки серверов на асинхронных алгоритмах. В Delphi такого механизма на уровне языка пока нет. Поэтому юзаем Indy. Очередная асинхронная сетевая либа не спасёт. Мне кажется, здесь смешались кони и люди Если ты подразумеваешь концепцию задач - то она как раз есть в Delphi. Может быть там не всё идеально по производительности, но с заложенной функциональностью справляется, и юзать удобно. Там пул потоков, список задач, замыкания (анонимки). Если говорить про сетевой буст (IOCP/epoll/kqueue, http.sys и др.) - то они в Delphi худо-бедно, но тоже есть. Если говорить про высокую нагрузку, то неплохие решения от TMS и RTC Но Node их всё равно сделает, причём в разы. К тому же придётся заплатить бабла Я же хочу сделать бесплатно и примерно на уровне В теории, с учетом особенности менеджера в ноде, можно и быстрее. Но меня сейчас опять заклюют, типа я говорю о неосуществимых вещах ) почему заклюют ? Ждём супер-быструю библиотеку, и если она будет ещё и самая быстрая в мире - почему бы и нет ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2021, 22:41 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
defecator, Другой разговор А я жду, что вы не только будете ждать Но и участвовать как-то Ну не конкретно ты А вообще люди, которым интересна тема ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2021, 22:45 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey DmSer Нагрузка ложится на планировщик, который при каждом срабатывании таймера лопатит все потоки. Насколько я помню, используются разные списки потоков. Это касается только потоков, готовых к немедленному выполнению (ready-потоки). Таких обычно немного. Это те потоки, у которых закончился таймаут ожидания, или которые ожидали на объекте синхронизации ядра и были разбужены (например при вызове SetEvent или ReleaseMutex из другого потока). Такие потоки заранее помещаются планировщиком в очередь для какого-то ядра, поэтому дальнейшая процедура их пробуждения очень проста и действительно не зависит от количества других потоков. Остальные потоки (спящие) в ready-очереди не помещаются, но планировщик при каждом срабатывании системного таймера анализирует по ним информацию (как минимум, проверяет, не закончился ли sleep-интервал). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2021, 22:54 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU defecator, Другой разговор А я жду, что вы не только будете ждать Но и участвовать как-то Ну не конкретно ты А вообще люди, которым интересна тема я тебе уже говорил, что сначала нужно понимание - зачем это всё нужно одно дело, когда для решения какой-то конкретной задачи, а другое - абстрактные оптимизации ради оптимизаций ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2021, 22:54 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
defecator, Совершенно верно У нас 4 человека Я описал мотивацию каждого из них. Вполне конкретно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2021, 22:55 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU defecator, Совершенно верно У нас 4 человека Я описал мотивацию каждого из них. Вполне конкретно ага, что ты решил потренироваться в эджайле и командной разработке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2021, 22:57 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
asutp2 DmSer Во всех популярных ЯП появилось асинхронное программирование (на основе async / await или наподобие). Это полностью устранило проблему высокой сложности разработки серверов на асинхронных алгоритмах. В Delphi такого механизма на уровне языка пока нет. Поэтому юзаем Indy. Очередная асинхронная сетевая либа не спасёт. Вот честно ничего не понял. И Indy не единственная библиотека, с помощью которой можно делать сетевые сервисы. Вот специально для тебя пример описания создания в делфи высокоскоростного UDP сервера на виндах и линуксе Лично мне пока хватало возможностей Indy. У меня не было необходимости решать задачу обслуживания 10000 http-запросов в секунду. Я считаю, что возможности "писать асинхронный код в стиле синхронного" не хватает. Но я понимаю, что в Delphi этой возможности никогда и не будет, поскольку если её реализуют, будет только хуже (кучу всего поломают в угоду задач, которые на Delphi решаются очень редко). Имеющиеся библиотеки для Delphi позволяют писать асинхронный код в стиле промайзов из JavaScript (например, OTL с его функциями async и await). Но промайзы в чистом виде в JS сейчас никто не использует, т.к. появился async / await, который гораздо нагляднее, в синхронном стиле, и не приводит к callback hell. Это при том, что в JS нет многопоточности. Всё работает в рамках одного потока! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2021, 23:03 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
defecator, Я практикуюсь в эджайле и командной разработке у себя на работе - у меня роль Скрам Мастера Нафига ты набрасываешь - не понятно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2021, 23:04 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU defecator, Я практикуюсь в эджайле и командной разработке у себя на работе - у меня роль Скрам Мастера Нафига ты набрасываешь - не понятно ты сам писал про это, жаль, что потёрли ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2021, 23:08 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
DmSer, Многопоточность в JS есть, просто она сильно спрятана Никто не мешает похожий подход использовать и в Delphi ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2021, 23:08 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=40033485&tid=2037708]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
163ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 486ms |

| 0 / 0 |
