Re: Архитектура IM-сервера. Параллельная работа.
От: 24  
Дата: 12.07.11 19:07
Оценка:
Здравствуйте, The Phantom Daemon, Вы писали:

TPD>1. Не постоянное число процессов/потоков. Один мастер-процесс обрабатывает запросы на соединение и для каждого создает новый поток/процесс. С каждым клиентом ассоциирован один процесс который и обрабатывает поступающие от него запросы.


TPD>2. Постоянное число потоков/процессов. Один мастер-процесс создает число потоков равное числу процессоров (или ядер) в системе или близкое к нему. Каждый из таких потоков/процессов обрабатывает несколько соединений с клиентами.


Второй способ способен обеспечить большую производительность, чем первый, т.к. создание процесса/потока — достаточно затратная операция, и чем их больше, тем больше накладные расходы на переключение между ними. От себя могу порекомендовать сначала сделать по первому варианту, а потом, когда всё будет работать — заменить на второй (при этом, естественно, сразу учитывать возможность замены, т.е. абстрагировать способ работы с многопоточностью от остального кода).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.