|
|
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU Кстати один из членов команды сказал, что такие тесты будут проводиться Это первое, с чего нужно было начинать - искать причину затыков, если они есть, а не бросаться сразу пилить своё, передовое, в угаре собственных представлений о прекрасном. Потому и цирк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2021, 12:47 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Я программирую 20 лет Весь мой гитхаб утыкан бенчмарками Ни одна крупная сетевая библиотека не создаёт поток на каждое соединение Что тебе не хватает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2021, 13:04 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
простите что врываюсь... может я скептик, но все же... автор1. На имеющемся серваке растёт количество клиентов, сервак начинает захлёбываться. Нужно добавить асинхронные сокеты... а как сделали вывод что асинхронщина поможет? было профилирование, которое показало, что проблема в обработке сети? автор2. Человек является начальником отдела разработки, много кода на Delphi, очень много клиентов. Есть желание продолжить на Delphi, но подчинённые прислали тест, где Node выигрывает Delphi на порядки на порядок это 10x, на порядки это 100x и более возникает резонный вопрос - что в тесте? это был тест, который копирует текущее поведение системы? с авторизацией, валидацией, с обращениями к другим системам, субд, записью логов и пр.? или это тест в духе смотри какой крутой в ноде http сервер, как он быстро возвращает "hello word"? если второй, то да, io-bound задачи это то с чем event loop справляется на ура... в реальных задачах присутствует логика иногда много и она дает нагрузку на cpu, что в однопоточной модели ноды может стать проблемой, надо масштабироваться, что не всегда просто ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2021, 13:29 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU Что тебе не хватает? Выдержки, пожалуй. Но я работаю над собой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2021, 13:33 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Да Это всем нужно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2021, 13:34 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
Дегтярев Евгений, Ты ожидаешь, что я тебе расскажу про других людей Я не знаю, какие тесты делались, какие нет Асинхронщина сети - это асинхронщина сервера Есть малое количество ядер, выполняющих полезную работу. И есть огромное количество вещей, которые предстоит им выполнить Есть огромное количество оверхеда, который накладывается на работу потока. Переключение контекстов, регистрация объектов операционной системы, оркестрация. Наверняка есть много других весомых оверхедов, необходимости в которых просто нет. Те же лишние прерывания, например, раздутое адресное пространство Другая проблема многопоточного кода - синхронизация. Поэтому особое внимание при разработке серверных приложений уделяется lock-free и wait-free алгоритмам. В крайних случаях пытаются нивелировать количество блокировок. Большая проблема многих сетевых библиотек в том, что не достаточно эффективно используется синхронизация. В примере того же ТС для поиска нужного клиента во-первых, блокируется сразу весь список, а во-вторых происходит линейный поиск Самый интересный момент серверных приложений и сетевых библиотек в частности - менеджмент памяти. Дело в том, что обычно каждое обращение к менеджеру памяти приводит к блокировке, о которой только что говорил. Есть менеджеры с минимальным количеством блокировок, оптимизация происходит за счёт локальной кучи, ассоциированной с потоком. Поэтому многопоточные приложения со ScaleMM2, например, показывают значительно более интересные результаты, нежели с FastMM. Но есть ещё более эффективные подходы к работе с памятью через буферы и/или стек. Большое количество наработок в этом направлении у меня кстати уже сделано ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2021, 13:59 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU, авторАсинхронщина сети - это асинхронщина сервера необязательно авторЕсть малое количество ядер, выполняющих полезную работу. И есть огромное количество вещей, которые предстоит им выполнить Есть огромное количество оверхеда, который накладывается на работу потока. Переключение контекстов, регистрация объектов операционной системы, оркестрация. Наверняка есть много других весомых оверхедов, необходимости в которых просто нет. Те же лишние прерывания, например, раздутое адресное пространство еще раз, оно оправдано для io-bound задач, где вышеописанный оверхед больше чем обработка очередного пакета действительно ли борьба идет с проблемой, которая имеет место быть? все что написано про блокировки и менеджеры памяти справедливо и для не асинхронного кода вот поэтому мне не понятна мотивация людей, у которых проблемы с существующим кодом (не nginx же они свой пишут) потому и спросил про профилирование, именно оно может показать проблемы и места для приложения усилий когда сервер не держит нагрузку, наряду с поиском способов оптимизации, я бы уже смотрел в сторону масштабирования, т.к. эффект от оптимизации не бесконечен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2021, 15:51 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
Дегтярев Евгений, Я конечно люблю беседы, но честно говоря не очень понимаю, что ты спрашиваешь У всех своя мотивация. Я её перечислил Конкретно я планировал сотрудничать с крупными компаниями, занимающимися разработкой серверных приложений на Delphi. Я знаю их внутренние сложности и планировалось придти к ним с готовыми эффективными решениями. Для этого хотелось взять готовую сетевую библиотеку и поверх неё запилить сериализацию под разные форматы и дополнительные утилитарные механизмы типа утентификации или автоматического перехода от сети к пайпам/расшареной памяти при возможности Поэтому я погуглил самые ходовые сетевые библиотеки, стал изучать и пришёл к выводу, что в каждой есть серьёзные недостатки. Что конкретно - мне сейчас сложно сказать потому, что ресёрч был давно Если пилить сетевую библиотеку, то она должна быть конкурентноспособна. Не только с дельфийскими решениями, но и с нодой, например Поскольку я фанат оптимизаций, подобная задача для меня представляет интерес, есть наработки, есть желание дальше развиваться в этой сфере Получится или нет в итоге - зависит от множества факторов. Все самые крутые вещи делаются командой. Оптимизация хоть и моя сильная сторона, но есть огромное количество областей, в которых я слаб. Кроме того в командной работе присутствует эффект синергии, что невероятно важно. Получится/нет - увидим Если ответил - ок Если нет - извини ) Но вообще говоря, на мой взгляд это переливание из пустого в порожнее Мне нравится тратить время на более конструктивные вещи и на людей, которые не столько говорят, сколько делают. Сказано немало. Кому интересна тема - стучитесь в личку - всегда можно придумать, каким образом быть полезным ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2021, 16:20 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
авторПоэтому я погуглил самые ходовые сетевые библиотеки, стал изучать и пришёл к выводу, что в каждой есть серьёзные недостатки. я бы даже сказал фатальные )) про то что надо заткнет всех нода (1 core) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. другое решение (1 core) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2021, 20:43 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
А TLS тоже сами будете делать?)) а то ж все эти rps попугаи при наличии хендшейка сразу становятся очень грустными ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2021, 12:01 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
Fr0sT-Brutal, к кому вопрос был? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2021, 11:13 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
Дегтярев Евгений к кому вопрос был? К soft4u. Правда, его забанили почему-то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2021, 12:09 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
Fr0sT-Brutal К soft4u. Правда, его забанили почему-то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2021, 22:03 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
bk0010 Fr0sT-Brutal К soft4u. Правда, его забанили почему-то да и не только тут :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2021, 09:36 |
|
||
|
IdTCPServer отправить сообщение клиенту
|
|||
|---|---|---|---|
|
#18+
по поводу TLS а так ли это необходимо внутри сервиса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2021, 12:54 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=40033588&tid=2037708]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
168ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 222ms |
| total: | 484ms |

| 0 / 0 |
