В 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, похоже, не является свободным для построенияи уничтожить.Так я должен использовать их вместо того, чтобы создавать новый для каждого соединения?