Редакция 2. Перепроектирование для меньшего количества подключений
В этой редакции пример приложения переработан, чтобы исключить ненужные подключения.
Предупреждение
Эти примеры приложения также обеспечивают намеренно низкую производительность, чтобы проиллюстрировать улучшения производительности, возможные при внесении изменений в код. Не используйте этот пример кода в приложении; он предназначен только для иллюстрации.
ComputeNext( Map );
bind( s, ... );
connect( s, ... );
for(int i=0 ; i < ROWS ; ++i)
for(int j=0 ; j < COLS ; ++j)
{
BYTE tmp[3];
tmp[0] = i;
tmp[1] = j;
tmp[2] = Map[i][j];
send( s, tmp, 3 );
recv( s, &byRet, 1 );
}
closesocket( s );
Оставшиеся проблемы
Изменения во второй редакции изменили приложение, чтобы сделать только одно подключение для каждого обновления. Приложение по-прежнему содержит следующие проблемы с производительностью:
- Приложение по-прежнему сериализовано и чатит.
- Приложение по-прежнему имеет толстый дизайн; Существует много отправлений, которые не требуют никаких операций в этой конструкции.
- Число отправляемых сообщений по-прежнему составляет всего 3 байта, что плохо передается.
Ключевые метрики производительности
Следующие метрики производительности выражаются в параметрах Время кругового пути (RTT), Goodput и Издержки протокола. Описание этих терминов см. в разделе Сетевая терминология .
Эта версия отражает следующие метрики производительности:
- Время ячейки — 1*RTT
- Goodput — 4 байта/RTT
- Издержки протокола — 96,8 %
Связанные темы