Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-126772

gRPC: further performance fine tuning

    XMLWordPrintable

Details

    • Task
    • Resolution: Fixed
    • P2: Important
    • None
    • None
    • GRPC
    • None
    • 25
    • 287047ec7 (dev), eeb62685d (6.8), 1e5737169 (dev), 94e8bb963 (dev), 5ac0c50ca (6.8), 727b71bd2 (6.8)
    • Foundation Sprint 111, Foundation Sprint 112, Foundation Sprint 113, Foundation Sprint 114

    Description

      Current benchmark profiling showed that even after improving client streaming (i.e. Writes) BiDirStreaming is still not at speed. Results of a benchmark run with 10k call operations:

       

        grpc/benchmarks/bench_qtgrpcclient ‹benchmark› ./bench_qtgrpcclient --calls 10000             130 ↵
      #### Start of QtGrpcClient benchmark ####
        cpu-arch: x86_64
        kernel: linux, 6.9.6-arch1-1
        host URI: localhost:65002Finished benchmark: UnaryCall
        Completed calls: 10000
        Total time: 3070133us, 3070133000ns
        Average time: 307us, 307013ns
      Finished benchmark: ServerStreaming
        Completed calls: 10000
        Total time: 65659us, 65659315ns
        Average time: 6us, 6565ns
      Finished benchmark: ClientStreaming
        Completed calls: 10000
        Total time: 56253us, 56253000ns
        Average time: 5us, 5625ns
      Finished benchmark: BidirStreaming
        Completed calls: 10000
        Total time: 2019687us, 2019687915ns
        Average time: 201us, 201968ns
      #### End of QtGrpcClient benchmark #### 

      However just running BiDir Streaming is much faster:

        grpc/benchmarks/bench_qtgrpcclient ‹benchmark› ./bench_qtgrpcclient --calls 10000 -B
      #### Start of QtGrpcClient benchmark ####
        cpu-arch: x86_64
        kernel: linux, 6.9.6-arch1-1
        host URI: localhost:65002Finished benchmark: BidirStreaming
        Completed calls: 10000
        Total time: 566508us, 566508749ns
        Average time: 56us, 56650ns
      #### End of QtGrpcClient benchmark #### 

      Attachments

        1. callgrind.zip
          1.19 MB
        2. perf_freq_2048.zip
          307 kB
        3. perf_freq_99.zip
          65 kB
        4. unary+bidi_perf_hit_2.zip
          235 kB
        5. unary+bidi_perf_hit_combo.zip
          698 kB
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            dennisoberst Dennis Oberst
            dennisoberst Dennis Oberst
            Vladimir Minenko Vladimir Minenko
            Alex Blasche Alex Blasche
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews