Поскольку заголовки всё ещё являются узким горлышком, я не прекращаю попыток придумать способы их соптимизировать. На повестке дня два способа:
- Статическая структура с well-known заголовками, чтобы лишний раз их не искать в общем хранилище
- Заранее объявлять списки нужных заголовков
С первым способом особо проблем нет, это имплементируется довольно банальным способом. Больше нас интересует второй пункт. Его идея состоит в том, чтобы если заранее известны необходимые обработчику заголовки, то их можно было сложить в одну структуру, и их запись/извлечение имели константную асимптотику. Иными словами - хэшмапа, но работающая на заранее известном множестве ключей. Более того, такая штука также может использоваться для хранения динамических сегментов путей (во встроенном роутере), что также повышает производительность.
Пока что вся проблема сводится к достаточно умной хэш-функции, которая могла бы выдавать желательно непрерывные (либо с небольшим интервалом) значения для строк. Надеюсь, я смогу что-то такое найти.
Эх, сколько же проблем решает сильный компайл-тайм
Post #174
88