Краткая справка: я понимаю, что HTTPListener использует драйвер ядра http.sys, что, как предполагается, делает его отличным исполнителем. Однако при выполнении некоторых тестов производительности между управляемым http-сервером и собственным сервером vc ++ я вижу увеличение примерно на 15 МБ / с на собственной стороне. Тестовая установка представляет собой две лабораторные машины, недавно отформатированные с помощью сетевых адаптеров емкостью 1 ГБ. На нативной стороне я вижу около 110 МБ / с, что близко к 100% от nic минус накладные расходы, при использовании HTTPListener я вижу ~ 94 МБ / с (максимум 100).
Тесты - это яблоки в яблоки,
В целом я ожидаю, что смогу приблизиться к 110 МБ / с собственного сервера через HTTPListener, 15 МБ / с кажется довольно дорогостоящим.
Вопросы: 1. Есть ли другие оптимизации для управляемого, которых мне не хватает? 2. Каковы некоторые потенциальные узкие места, я посмотрел на HTTPResponseStream через отражатель, похоже, что происходит некоторый маршалинг, но нет явных проблем. Фактически, при использовании фрагментов он создает такой же массив фрагментов, что и мой собственный сервер.
Любой идеи приветствуются,