у моего веб-сервера много зависимостей для отправки данных, когда он получает запрос. Я тестирую одно из этих зависимых приложений на веб-сервере. приложение отделено от основного веб-сервера, и к нему поступают только запросы в виде открытых API.
Мой вопрос: если я хочу проверить эти api в многопоточной среде (функции С ++ с двухъядерным процессором), как лучше всего это сделать?
я вызываю каждый api в отдельном потоке или процессе? если да, то как мне реализовать такой код? исходя из того, что я могу понять, я бы дублировал работу веб-сервера, но я не могу найти другого лучшего способа выяснить, какие улучшения производительности дает только этот компонент.





Это зависит от того, обрабатывает ли ваше приложение данные, которые совместно используются, если оно запускается в параллельных процессах, потому что это, скорее всего, определит, где ожидает узкое место в скорости.
Например, если приложение обращается к базе данных или файлам на диске, вам, вероятно, придется смоделировать несколько потоков / процессов, запрашивающих приложение, чтобы увидеть, как они ладят друг с другом, то есть должны ли они ждать друг друга при доступе к общий ресурс.
Но если приложение выполняет только некоторые внутренние вычисления, все само по себе, оно может хорошо масштабироваться, пока все его данные умещаются в памяти (т.е. не требуется доступ к виртуальной памяти, например, доступ к диску, необходим). Затем вы можете протестировать производительность только одного экземпляра и сосредоточиться на оптимизации его скорости.
Это также может помочь указать ОС, которую вы планируете использовать. Mac OS X предлагает инструменты для тестирования производительности и оптимизации, которых нет в Windows и Linux, и наоборот.