| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > Оптимизация сокетов |
| Автор: ilyalyu 26.12.2006, 19:18 | ||||
| Задача - передать через сокет 100 блоков по 10 байт. Возможны два способа. Вопрос - какой более эффективный? Способо 1: Послать все по отдельности. Вот приблизительный код:
Способо 2: Сначала скопировать все данные в буфер, а затем один раз послать буфер через сокет. Приблизительный код:
Как нетрудно видеть, первый вариант гораздо более компактный. Однако, насколько я понимаю, посылать 100 маленьких пакетов менее эффективно, чем один большой. Во втором варианте все данные будут гарантированно переданы одним пакетом, но текст программы увеличивается многократно. Кроме того, насколько я понимаю, сокет может и сам буферизировать отправляемые данные. В этом случае первый вариант также отправит один большой пакет, а не сто маленьких. |
| Автор: NoeR 2.1.2007, 22:58 |
| Первый лучше, так как действительно будет отправлено одним пакетом. |