|
Межпроцессное взаимодействие - что быстрее?
|
|||
---|---|---|---|
#18+
mayton13thЯ, вообще-то чутка подшаманил, и разогнал до 242К/сек. (1 клиент) и 143К/сек. (5 клиентов). На стандартных виндовых Event-ах. Топик можно закрывать? :) Пусть поваляется. Напишу потом результат сравнения с сокетами и ZMQ. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 20:28 |
|
Межпроцессное взаимодействие - что быстрее?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 23:26 |
|
Межпроцессное взаимодействие - что быстрее?
|
|||
---|---|---|---|
#18+
13thЯ, вообще-то чутка подшаманил, и разогнал до 242К/сек. (1 клиент) и 143К/сек. (5 клиентов). На стандартных виндовых Event-ах.Стоит показать в чём шаманство для тех кто найдёт топик. Результат хоть глобально и печальный, но локально очень неплох. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2018, 09:00 |
|
Межпроцессное взаимодействие - что быстрее?
|
|||
---|---|---|---|
#18+
Я думаю что автора ограничивает соглашение о неразглашении. Но если бы у нас был макет - это бы придало Топику некоторую динамику. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2018, 09:35 |
|
Межпроцессное взаимодействие - что быстрее?
|
|||
---|---|---|---|
#18+
Пожалуйста, вот макет. Рабочая конфигурация - Release x64, на других не пробовал. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2018, 14:50 |
|
Межпроцессное взаимодействие - что быстрее?
|
|||
---|---|---|---|
#18+
Для удобства сервер сам запускает клиентов. Что бы это работало, в PROJECT_PLACE впишите каталог солюшена. В WORK_CLIENTS_COUNT впишите желаемое число клиентов (но не больше MAX_CLIENTS_COUNT). Это макет, я не заморачивался, что бы всё было удобно. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2018, 14:57 |
|
Межпроцессное взаимодействие - что быстрее?
|
|||
---|---|---|---|
#18+
Друзья. Автор выложил сорцы. От нас нет ответа. Почему такая пассивность? Мы все давали наперебой советы. Кто-то просмотрел код? Есть code review issues? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2018, 23:24 |
|
Межпроцессное взаимодействие - что быстрее?
|
|||
---|---|---|---|
#18+
mayton, Мы все ушли в Телеграмм... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2018, 14:24 |
|
Межпроцессное взаимодействие - что быстрее?
|
|||
---|---|---|---|
#18+
MasterZivmayton, Мы все ушли в Телеграмм... Все заняты настройкой VPN и анамайзеров для обхода блокировки Телеграмма? ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2018, 14:36 |
|
Межпроцессное взаимодействие - что быстрее?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, вот еще... Занафига? Им проще не пользоваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2018, 14:47 |
|
Межпроцессное взаимодействие - что быстрее?
|
|||
---|---|---|---|
#18+
MasterZivmayton, Мы все ушли в Телеграмм...и теперь выйти из него не можем) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2018, 14:50 |
|
Межпроцессное взаимодействие - что быстрее?
|
|||
---|---|---|---|
#18+
Цикл писателя: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Этот код будет работать со скоростью самого медленного читателя. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2018, 15:06 |
|
Межпроцессное взаимодействие - что быстрее?
|
|||
---|---|---|---|
#18+
Решение на первой странице написали 21300756 Anatoly MoskovskyКак выше уже написали здесь проблема в том что нет очереди. Как только появляется очередь, то сигналы можно слать уже не на каждое сообщение, а только если очередь пуста/полна (а тогда и так одна из сторон простаивает и скорость сигналов не важна). А в промежутках между этим применяется обычный мьютекс. Я в такой конфигурации получал не то что сотни тысяч - а даже миллионы в сек. Но ТС похоже так и не понял как очередь добавить в его код. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2018, 15:32 |
|
Межпроцессное взаимодействие - что быстрее?
|
|||
---|---|---|---|
#18+
rdb_devLeonid Kudryavtsev, вот еще... Занафига? Им проще не пользоваться. Он потрясающе удобен. Не знаю даже чем. Но удобен. Кроме этого, там весь траффик. Там все люди. Вебы сдохли. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2018, 16:03 |
|
Межпроцессное взаимодействие - что быстрее?
|
|||
---|---|---|---|
#18+
13thНу вот, взял такой: Сделал memory-mapped файл, пишу в него, делаю Set эвенту, в клиенте читаю. Размер структуры - тривиальный, 8 байт. Получается 20 тысяч в секунду. Процессор i5-4440. До сотен тысяч далеко. Затестил твой код 21311921 на своем i5-660. Процы похожие Кол-во читателей Скорость тыс./сек11973143594 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 09:08 |
|
Межпроцессное взаимодействие - что быстрее?
|
|||
---|---|---|---|
#18+
Хм... есть в этих эвентах какая-то натяжка. А мы можем хотя-бы снизить их количество? Ну чтоб не на каждый месседж был эвент. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 09:23 |
|
Межпроцессное взаимодействие - что быстрее?
|
|||
---|---|---|---|
#18+
MasterZivrdb_devLeonid Kudryavtsev, вот еще... Занафига? Им проще не пользоваться. Он потрясающе удобен. Не знаю даже чем. Но удобен. Кроме этого, там весь траффик. Там все люди. Вебы сдохли.Ну не знаю... Не пользуюсь ни viber'ом, ни whazzup'ом совсем, а скайпом пару раз в месяц. Разве что корпоративным jabber'ом регулярно. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 09:40 |
|
Межпроцессное взаимодействие - что быстрее?
|
|||
---|---|---|---|
#18+
maytonХм... есть в этих эвентах какая-то натяжка. А мы можем хотя-бы снизить их количество? Ну чтоб не на каждый месседж был эвент. Можно, но не поможет особо. Я хотел показать что проблема вовсе не в эвентах. ТЗ: 13thНадо передавать 300..500 сообщений В СЕКУНДУ. Всего. Даже при такой убогой передаче сами расходы на передачу займут 0.25-0.5% времени. Тут хоть затюнингуйся - экономить особо не на чем. Тормоза у него в коде его читателей, поэтому надо схему чтения менять. Т.е. добавлять очередь, чтобы читатели не синхронно читали. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 09:42 |
|
Межпроцессное взаимодействие - что быстрее?
|
|||
---|---|---|---|
#18+
maytonХм... есть в этих эвентах какая-то натяжка. А мы можем хотя-бы снизить их количество? Ну чтоб не на каждый месседж был эвент. Там по два эвента на каждого читателя. Думал можно сделать два эвента + счетчик, но не придумал как. Cделал два эвента + биткарта, т.е. 32/64 читателя максимум. Скорость не сильно поменялась Кол-во читателей Скорость тыс./сек Мой вариант тыс./сек11972013143150594117 Но к моему проще очередь прикрутить. Хотя тоже не все так просто, т.к. тут одно и тоже сообщение несколько читателей обрабатывают. ИсходникСборка в TestMapped.exe, т.к. запускает сам себя для чтения Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 16:51 |
|
Межпроцессное взаимодействие - что быстрее?
|
|||
---|---|---|---|
#18+
Dima Tодно и тоже сообщение несколько читателей обрабатывают. Это не масштабируется. У каждого читателя должна быть выделенная синхронизирующая структура для передачи сообщения. А писатель делает копии каждому. Неважно очередью передается или одним экземпляром. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 17:02 |
|
Межпроцессное взаимодействие - что быстрее?
|
|||
---|---|---|---|
#18+
Dima TЭтот код будет работать со скоростью самого медленного читателя. В данном случае у меня тривиальный читатель: memcpy плюс SetEvent. Меньше не будет никак. Поэтому самые быстрые реальные читатели не обгонят этого, тривиального. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 18:04 |
|
Межпроцессное взаимодействие - что быстрее?
|
|||
---|---|---|---|
#18+
13thВ данном случае у меня тривиальный читатель: memcpy плюс SetEvent. Это на один SetEvent больше, чем необходимо. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 18:23 |
|
Межпроцессное взаимодействие - что быстрее?
|
|||
---|---|---|---|
#18+
13thDima TЭтот код будет работать со скоростью самого медленного читателя. В данном случае у меня тривиальный читатель: memcpy плюс SetEvent. Меньше не будет никак. Поэтому самые быстрые реальные читатели не обгонят этого, тривиального. Тогда 10000+ сообщений в секунду гарантированно. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 20:21 |
|
Межпроцессное взаимодействие - что быстрее?
|
|||
---|---|---|---|
#18+
Давайте в качестве пятничной темы. Рассмотрим memory-map (mmap). В качестве points: 1) Размер страницы? Везде-ли 4к? 2) Ограничения. Сколько можно выделить. 3) Реализации в Windows/Unix 4) Практическое применение кроме традиционного (загрузка кода). SQLite? Другие DBMS? 5) Бенчмарки. Оптимизации. Пока - предложения по вопросам. А топик я форкну отдельно. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 10:38 |
|
Межпроцессное взаимодействие - что быстрее?
|
|||
---|---|---|---|
#18+
mayton, а конструктивно что предлагаешь обсуждать, реализацию базы типа ключ-значение (т.е. ассоциативного массива)? межпроцессная очередь как видно в силу ограничений ОС на отклик, совсем несостоятельная ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 11:13 |
|
|
start [/forum/topic.php?fid=57&msg=39630895&tid=2017690]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 256ms |
total: | 393ms |
0 / 0 |