powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Обмен данными между своими процессами
25 сообщений из 109, страница 1 из 5
Обмен данными между своими процессами
    #39616643
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть служба, которая запускает несколько процессов, которым она будет передавать данные (объекты размером около 10кб). Обратно передавать ничего не надо. Для этого есть несколько технологий:
1. File Mapping
2. Named Pipes
3. WM_COPYDATA

Передача данных будет высокоинтенсивная. Какая технология подойдет лучше по вашему мнению?
...
Рейтинг: 0 / 0
Обмен данными между своими процессами
    #39616649
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrb,

ну ты просто попробуй все три, да сравни.
...
Мэилслоты ещё, самый простой способ, имхо.
...
Рейтинг: 0 / 0
Обмен данными между своими процессами
    #39616651
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД, спасибо кэп
...
Рейтинг: 0 / 0
Обмен данными между своими процессами
    #39616654
Vizit0r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
оконные сообщения самые медленные.

так что 1 или 2 + можно по сети кидаться, в локалхосте это очень быстро происходит.
...
Рейтинг: 0 / 0
Обмен данными между своими процессами
    #39616659
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrbЕсть служба, которая запускает несколько процессов, которым она будет передавать данные (объекты размером около 10кб). Обратно передавать ничего не надо. Для этого есть несколько технологий:
1. File Mapping
2. Named Pipes
3. WM_COPYDATA

Передача данных будет высокоинтенсивная. Какая технология подойдет лучше по вашему мнению?

MMF
...
Рейтинг: 0 / 0
Обмен данными между своими процессами
    #39616674
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
cptngrbЕсть служба, которая запускает несколько процессов, которым она будет передавать данные (объекты размером около 10кб). Обратно передавать ничего не надо. Для этого есть несколько технологий:
1. File Mapping
2. Named Pipes
3. WM_COPYDATA

Передача данных будет высокоинтенсивная. Какая технология подойдет лучше по вашему мнению?
я бы TCP/IP использовал - удобно и универсально
...
Рейтинг: 0 / 0
Обмен данными между своими процессами
    #39616677
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насчет MMF, я не тестил, но винт при моих объемах (сотни объектов в секунду по >10кб) может сдохнуть быстро. Или нет?
...
Рейтинг: 0 / 0
Обмен данными между своими процессами
    #39616679
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работает сервис 247.
...
Рейтинг: 0 / 0
Обмен данными между своими процессами
    #39616682
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrbПередача данных будет высокоинтенсивная. Какая технология подойдет лучше по вашему мнению?
Более принципиальный вопрос - как именно должны передаваться данные:
а) непосредственно от процесса к процессу (2, 3)
б) опосредованно через доп. буферы (1 и сокеты).
В первом случае возникает проблема синхронизации готовности, второй может быть медленнее.
...
Рейтинг: 0 / 0
Обмен данными между своими процессами
    #39616688
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис, в этом и вопрос как именно
Я знаю, что нужно сервису передать блок памяти процессу , а что он будет с ним делать - до фонаря.
сервис должен контролить процессы на живучесть, и их перезапускать по необходимости.
Для общего понимания, я хочу потоки перевести на отдельные процессы, так как в рамках ОДНОГО процесса(службы), они со своей задачей не справляются, вот и стал вопрос в поиске буферов
...
Рейтинг: 0 / 0
Обмен данными между своими процессами
    #39616689
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrb,

так не далеко и до разнесения по разным хостам
как вариант, с заделом на будущее, использовать для передачи данных очереди сообщений, а контролировать живучесть сервисов и операционка может
...
Рейтинг: 0 / 0
Обмен данными между своими процессами
    #39616690
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrbЕсть служба, которая запускает несколько процессов, которым она будет передавать данные (объекты размером около 10кб). Обратно передавать ничего не надо. Для этого есть несколько технологий:
1. File Mapping
2. Named Pipes
3. WM_COPYDATA

Передача данных будет высокоинтенсивная. Какая технология подойдет лучше по вашему мнению?
Подойдет лучше по каким критериям? Приведен только один - высокая интенсивность. Он реально один или еще есть?
...
Рейтинг: 0 / 0
Обмен данными между своими процессами
    #39616692
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я, ну и гарантия доставки
...
Рейтинг: 0 / 0
Обмен данными между своими процессами
    #39616694
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дегтярев Евгений, а перезапускать их тоже ОС будет?
...
Рейтинг: 0 / 0
Обмен данными между своими процессами
    #39616695
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrbОбратно передавать ничего не надо
cptngrbну и гарантия доставки
...
Рейтинг: 0 / 0
Обмен данными между своими процессами
    #39616697
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД, я имею ввиду технологию)))
...
Рейтинг: 0 / 0
Обмен данными между своими процессами
    #39616706
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrbСоколинский Борис, в этом и вопрос как именно
Я знаю, что нужно сервису передать блок памяти процессу , а что он будет с ним делать - до фонаря.
сервис должен контролить процессы на живучесть, и их перезапускать по необходимости.
Для общего понимания, я хочу потоки перевести на отдельные процессы, так как в рамках ОДНОГО процесса(службы), они со своей задачей не справляются, вот и стал вопрос в поиске буферов Если скорость взаимодействия некритична, наверное MMF.
...
Рейтинг: 0 / 0
Обмен данными между своими процессами
    #39616709
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
У меня система видеонаблюдения,
разрезана на несколько сервисов - собственно сервис приёма и обработки видеопотоков,
сервис архивации видеопотоков, сервис веб-доступа к видеопотокам и архивам

Как ты понимаешь, всё это высоконагруженное.
Взаимодействие реализовано через TCP/IP посредством библиотеки RealThinClient

Всё это спокойно летает на i5 на трёх десятках камер.

Я даже не представляю, что у тебя там за данные сервисы обрабатывают
...
Рейтинг: 0 / 0
Обмен данными между своими процессами
    #39616711
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrbну я, ну и гарантия доставки
Опа. А где должна находиться точка определения гарантии доставки - в передатчике или в приемнике?
...
Рейтинг: 0 / 0
Обмен данными между своими процессами
    #39616712
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrbДегтярев Евгений, а перезапускать их тоже ОС будет?

почему нет?
...
Рейтинг: 0 / 0
Обмен данными между своими процессами
    #39616714
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrbНасчет MMF, я не тестил, но винт при моих объемах (сотни объектов в секунду по >10кб) может сдохнуть быстро. Или нет?MMF это не только физические файлы
частный случай - shared memory, вообще диск никак не трогает (ну если своп не учитывать)
...
Рейтинг: 0 / 0
Обмен данными между своими процессами
    #39616715
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecatorЯ даже не представляю, что у тебя там за данные сервисы обрабатывают
+
хотелось бы больше контекста

зы
ТС, варианты оптимизаций существующего решения рассмотрены?
...
Рейтинг: 0 / 0
Обмен данными между своими процессами
    #39616717
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrb...нужно сервису передать блок памяти процессу , а что он будет с ним делать - до фонаря...
...ну и гарантия доставки...

Так смешно.
Корреспондент получил сообщение, и тебе до фонаря, что он там с нима делает?
Ну, ладно.

Пошли ему еще одно сообщение. Если он с первым еще ничего не успел сделать,
сообщение чудесным образом встанет в чудесным образом появившуюся очередь.
Пока очередь не заполнится. Ту придется либо ждать, когда очередь рассосется,
либо прекратить передачу сообщений (отбрасывать их), других вараинтов нет.
...
Рейтинг: 0 / 0
Обмен данными между своими процессами
    #39616723
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator, В итоге все уперлось в запись в БД Oracle. При работе с одним клиентом (одна oci.dll) и 50 потоками, она не успевает все укладывать. Решил попробовать, для теста, разнести на несколько клиентов запись в БД.
...
Рейтинг: 0 / 0
Обмен данными между своими процессами
    #39616724
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дегтярев Евгений, не особо видны эти самые варианты оптимизации, может и есть другие способы. Просто пробую варианты
...
Рейтинг: 0 / 0
25 сообщений из 109, страница 1 из 5
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Обмен данными между своими процессами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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