Поделиться через


Поведение приложения

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

Поведения, которые следует избегать

  • Chatty Applications.

    Некоторые приложения выполняют множество небольших транзакций. В сочетании с сетевыми издержками, связанными с каждой такой транзакцией, эффект умножается. В сети небольшие транзакции могут потреблять столько же ресурсов и столько же времени, сколько большие транзакции. Лучший подход — объединить несколько небольших транзакций в одну большую транзакцию.

  • Сериализованные транзакции.

    Ненужная сериализация транзакций может привести к снижению производительности и повлиять на масштабируемость. Например, для выполнения 1000 сериализованных транзакций требуется по крайней мере 1000 * RTT. Лучший подход — параллельное выполнение несвязанных транзакций. При объединении сериализованных приложений с чатными приложениями скорость отклика может быть серьезно затруднена.

    Примечание

    Правильная десериализация приложения может оказаться сложной задачей. Если переход с сериализованного на параллельный окажется слишком сложным, рассмотрите возможность объединения нескольких транзакций в меньшее количество больших транзакций.

     

  • Транзакции fat.

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

В следующих разделах рассматриваются аспекты разработки приложений.

Высокопроизводительные приложения windows Sockets