Всем привет.
Вот такое вопрос назрел. Есть библиотечка реализующая RPC и нужно как-то понять на сколько она производительна. Есть какие-то практики и вообще что за это почитать?
Что я делал:
Сначала просто поднял на одной машине точку на локальном сокете (/home/test/rpc.sock, например) и в цикле выполнил несколько тыщ запросов с ожиданием (запросил, подождал, получил ответ, вернул). грубо
for( int i=0; i<test_calls; ++i ) {
make_call( );
}
замерил время исполнения и поделил на количество. Среднее получилось в районе 35 микросекунд (как понять хорошо это или плохо?).
Потом сказал серверу использовать несколько потоков для обработки запросов и натравил 32 таких же клиента (с локальной же машины, что, видимо, неправильно). и каждый показал среднее в районе 300 микросекунд. Как теперь, опять же, понять хорошо это или плохо?
Еще один тест. Скормил миллион сериализованных уже сообщений в процессор протокола и получил 3.5 (+-) секунды на обработку всех на 1 ядре.
Что еще такого можно придумать?