Есть (как обычно) плюсы и минусы каждого подхода. Лично я хотел бы рассмотреть оба варианта, начиная с одного теста API.
Один API, вероятно, проще всего построить, и его преимущество заключается в точном выявлении проблем с производительностью. Также полезно определять регрессию в производительности во время разработки. Если для приложения существуют модульные тесты, рассмотрите возможность их использования. Когда наблюдается снижение производительности, обычно также выполняется модульное тестирование, которое внезапно замедляется.
Как только вы это сделаете, вам все равно придется выполнять более сложные тесты. Во-первых, потому что вам нужно знать, приемлема ли производительность определенного потока, а также потому, что между различными API-интерфейсами могут возникать непредвиденные взаимодействия. В зависимости от вашего приложения могут возникнуть неприятные проблемы с параллелизмом, узкими местами пропускной способности и т. Д. Убедитесь, что вы запускаете несколько потоков одновременно, это то, что происходит в реальной жизни, и это единственный способ найти проблемы, связанные с блокировкой в базе данных, узкими местами ввода-вывода и т. Д.
Но прежде чем начать, убедитесь, что у вас есть реалистичное представление о том, какой должна быть производительность, сколько будет одновременно работающих пользователей и каковы требования к оборудованию. Нет никаких ограничений в улучшении производительности, поэтому вы должны решить, что достаточно хорошо, или вы никогда не прекратите оптимизацию.