c ++ Grpc :: CompletionQueue скорость строительства около 14k? - PullRequest
0 голосов
/ 25 февраля 2019

В async-grpc я пытаюсь создать новый grpc :: completequeue для каждого соединения.Затем я нахожу проблему. Кажется, что скорость построения cq не высокая.

//It test with folly::benchmark
BENCHMARK(CompletionQueue){
    grpc::CompletionQueue cq;
}

BENCHMARK(folly_mpmcqueue){
    folly::MPMCQueue<int> cq;
}

BENCHMARK(std_queue){
    std::queue<int> cq;
}

В результате получается:

============================================================================
test.cpp                                        relative  time/iter  iters/s
============================================================================
CompletionQueue                                             63.99us   15.63K
folly_mpmcqueue                                             67.12ns   14.90M
std_queue                                                  220.97ns    4.53M
============================================================================

Cq, похоже, не является свободным для построенияи уничтожить.Так я должен использовать их вместо того, чтобы создавать новый для каждого соединения?

1 Ответ

0 голосов
/ 01 апреля 2019

Да, очереди завершения могут быть использованы повторно.Они не привязаны ни к одному соединению или звонку.

...