LINUXTALKS.CO

Что быстрее, файл в tmpfs, TCP или pipe?

 , , , ,

L


0

2

Предположим есть 2 программы, условный клиент и сервер, а вернее специализированная программа для вычисления кое чего, написанная на одном языке и программа работающая с ней написанная на другом. При этом процессы даже могут не находится на одном компьютере, а общаться через сеть.

Первая идея. Сделать обмен через стандартный ввод вывод, передавая что то вроде уплотнённого json. Вторая идея, разместить в tmpfs файлы и постоянно проверять в них байт с флагом обновления данных. Третья идея, просто использовать TCP.

Для чего это нужно? Что бы гонять очень много вызовов, хоть в асинхронном режиме. А точнее, каждый «тик», посылать «плагинам» обновление двухмерной игровой карты (только изменённые данные). Посылать события поддерживаемых объектов. Принимать изменения в полях объектов, изменения игровой карты. А так же вынести тем самым в асинхронные потоки расчёты маршрутов, освещённости, термодинамику, грязь.

В общем нужно будет приблизительно 60 раз в секунду, обмениваться данными приблизительно с 16 процессами. Каждый «тик» предположительно займёт несколько десятков килобайт данных туда и обратно.

Понятно что сделать нормальный мультипоток правильнее, но если бы этот вариант подходил бы, то этого вопроса и не было.

★★★★★★