как проверить производительность c ++ api - PullRequest
2 голосов
/ 07 декабря 2008

мой веб-сервер имеет много зависимостей для отправки данных, когда он получает запрос. Я тестирую одно из этих зависимых приложений на веб-сервере. приложение отделено от основного веб-сервера, и к нему поступают только запросы в форме API.

мой вопрос: если я хочу проверить эти API в многопоточной среде (функции c ++ с двухъядерным процессором), что лучше всего делать?

я называю каждый API в отдельном потоке или процессе? если так, как я могу реализовать такой код? Исходя из того, что я могу выяснить, я бы дублировал функционирование веб-сервера, но я не могу найти другого лучшего способа выяснить улучшения производительности, которые дает только этот компонент.

1 Ответ

1 голос
/ 07 декабря 2008

Это зависит от того, работает ли ваше приложение с данными, которые используются совместно, если оно запускается в параллельных процессах, потому что это, скорее всего, определит, где ожидается узкое место в скорости.

Например, если приложение обращается к базе данных или дисковым файлам, вам, вероятно, придется смоделировать несколько потоков / процессов, запрашивающих приложение, чтобы увидеть, как они уживаются друг с другом, то есть должны ли они ждать друг друга при доступе к общему ресурсу.

Но если приложение выполняет только некоторые внутренние вычисления, все самостоятельно, то оно может хорошо масштабироваться, если все его данные помещаются в память (т. Е. Не требуется доступ к виртуальной памяти, например, доступ к диску). Затем вы можете протестировать производительность только одного экземпляра и сосредоточиться на оптимизации его скорости.

Это также может помочь указать операционную систему, которую вы планируете использовать. Mac OS X предлагает инструменты для тестирования и оптимизации производительности, которых нет в Windows и Linux, и наоборот.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...