| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
…ess CPU Switch to using a graceful poll of the queue rather than a spin loop poll. Elements being added to the queue will happen asynchronously from a background gRPC thread. Rather than immediately returning if the queue is empty allow waiting up to 10 microseconds (possibly not optimal duration, but testing shows good results -- before ~51% of cpu time is spent in `StreamingRead.read`, after ~13% of cpu time is spent in `StreamingRead.read` for roughly the same wall time 1.59% before, 1.52% after. This also has the added benefit of reduced perceived latency for an application. ##### profiled workload results Download 128MiB object from 0-EOF 1000 times, while async profiler is profiling `event=cpu`. Using `StorageDataClient.fastOpenReadSession` to begin the read while creating the session. All values below are latency in milliseconds | | p50 | p90 | p95 | |--------|------:|------:|------:| | before | ~ 266 | ~ 408 | ~ 468 | | after | ~ 253 | ~ 384 | ~ 431 | * Remove no longer necessary Buffers.totalRemaining call
…ment from the queue
| Back | FazBrowse Home | New Git URL |
Switch to using a graceful poll of the queue rather than a spin loop poll.
Elements being added to the queue will happen asynchronously from a background gRPC thread. Rather than immediately returning if the queue is empty allow waiting up to 10 microseconds (possibly not optimal duration, but testing shows good results -- before ~51% of cpu time is spent in StreamingRead.read, after ~13% of cpu time is spent in StreamingRead.read for roughly the same wall time 1.59% before, 1.52% after). This also has the added benefit of reduced perceived latency for an application.
profiled workload results
Download 128MiB object from 0-EOF 1000 times, while async profiler is profiling event=cpu. Using StorageDataClient.fastOpenReadSession to begin the read while creating the session.
All values below are latency in milliseconds
async-profilers flame graphs