Здравствуйте, oziro, Вы писали:
O>Привет!
O>Извиняюсь, если не в тот форум
O>VS2005, с++ проект. Работа с сетью через winpcap.
O>Заморочка (суть не важно, для полноты картины упоминаю): большое время между отправкой пакетов (порядка 50 мс). Тестовые примеры показали, что можно добиться единиц мс.
O>Опыт работы с профайлером небольшой, по-этому прошу помощи.
O>Его результат:
O>
O>То, что pcap_next_ex() виновник всех бед, это понятно. Там в цикле одном она постоянно вызывается на предмет проверки приходящих пакетов. Локальное измерение показало, что именно это место фиксить, реже вызываеть ее.
O>Меня смущает GetMesageA. Это вроде одна из виндовых функций для обработки оконных сообщений. Как мне реагировать на ее 42% time? Интуиция подсказывает, что не важно это. Тем более, она в другом потоке где интерфейс...
попробуй изменить "read timeout" при вызове pcap_open
m_pHAdapter = pcap_open( szDevice, // name of the device
MAX_ADAPTER_PACKET_SIZE, // portion of the packet to capture
// 65536 guarantees that the whole packet
// will be captured on all the link layers
0, // PCAP_OPENFLAG_PROMISCUOUS,
1, // read timeout
NULL, // authentication on the remote machine
m_szError );