В настоящее время я работаю над оценкой производительности gRPC Java в рамках примера настройки и хотел бы поделиться проблемой, с которой столкнулся, которая, похоже, связана с производительностью.
Я реализовал минимальную настройку сервера и клиента gRPC с помощью Java + Maven, следуя официальному примеру, представленному на сайте документации gRPC Java( https://grpc.io/docs/languages/java/quickstart/) И сборка, и выполнение завершаются успешно, однако наблюдаемая производительность намного ниже ожидаемой.
Когда я запускаю сервер и клиент локально на одном компьютере, я замечаю, что за одну секунду клиент может выполнить только около 200–500 синхронных вызовов gRPC с использованием синхронных заглушек. Я ожидал гораздо более высокой пропускной способности, учитывая, что gRPC разработан для обеспечения значительного преимущества в производительности по сравнению с API на основе RMI.
Для сравнения: когда я тестировал установку на основе Java RMI в аналогичных условиях, результаты тестов достигли 7684 вызовов в секунду.
Я гарантировал, что реализация строго соответствует примеру кода, включая генерацию .proto и зависимость Maven. конфигурация.
Ниже приведены технические подробности и шаги, которые я уже проверил:
Подробности среды
- Язык: Java
- Инструмент сборки: Maven
- Рамка: gRPC Java (пример из официального сайта) документация)
- Версия Java: 24
- Операционная система: Windows 11
- Аппаратное обеспечение: 8 ГБ ОЗУ, процессор Intel i5
Подробнее здесь: https://stackoverflow.com/questions/797 ... java-setup
Мобильная версия