John Howard
John Howard
Ok I think that makes sense. Here is another fun one: ``` time fortio load -qps 10 -t 5s -c 1000 httpbin.org/delay/10 Fortio 1.3.1-pre running at 10 queries per second,...
Will be looking out for potential optimization points: Switching https://github.com/census-instrumentation/opencensus-go/blob/49838f207d61097fc0ebb8aeef306913388376ca/stats/view/collector.go#L69 to return a `string` directly using concepts from `string.Builder` removes a call to `slicebytetostring` and drops allocs by 6.6%
https://github.com/census-instrumentation/opencensus-go/blob/49838f207d61097fc0ebb8aeef306913388376ca/stats/record.go#L131-L135 can be optimized as well. At the very least, we are creating a context to stick a map in it, then immediately extracting the map and discarding the context....
with RecordWithTagsFast: * 13% of CPU wasted on a `convTslice` because the `Recorder` interface takes an `interface{}` as an argument; this is *always* a `[]Measurement` though. * 11% of time...
So there is actually a way to reduce allocations if we can precompute tags by using some different functions: ```go b.Run("oc-ctx", func(b *testing.B) { mLineLengths := stats.Float64("test", "my-benchmark", stats.UnitDimensionless) key...
Replacing `func(tags *tag.Map, measurement interface{}, attachments map[string]interface{})` with `func(tags *tag.Map, measurement []stats.Measurement, attachments map[string]interface{})` brings us to 3 allocs. That leaves: * https://github.com/census-instrumentation/opencensus-go/blob/49838f207d61097fc0ebb8aeef306913388376ca/stats/view/worker.go#L204. Cannot be avoided without getting rid of...
I think just https://github.com/istio/istio/blob/fcfbad7ff2b126d53aa91bc2ea7a33e2a972ba5d/pilot/pkg/serviceregistry/util/label/label.go#L33 needs to be changed... although in practice something else may come up making it more challenging.
Still broken with https://github.com/istio/istio/pull/38862
This is expected due to how envoy works, it wi drain connections when listener changes
With Istio does it happen if you switch weights from 50/50 to 60/40 or anything that is not 0?