allocations improvements and tunnel fixes (#1248)
* reduce allocations in tunnel code Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org> * another allocation fix Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org> * allocate maps with len if it known Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org> * allocate key for send once Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
parent
f91ec84d59
commit
144014db34
2
codec.go
2
codec.go
@ -155,7 +155,7 @@ func (g *grpcCodec) ReadHeader(m *codec.Message, mt codec.MessageType) error {
|
|||||||
m = new(codec.Message)
|
m = new(codec.Message)
|
||||||
}
|
}
|
||||||
if m.Header == nil {
|
if m.Header == nil {
|
||||||
m.Header = make(map[string]string)
|
m.Header = make(map[string]string, len(md))
|
||||||
}
|
}
|
||||||
for k, v := range md {
|
for k, v := range md {
|
||||||
m.Header[k] = strings.Join(v, ",")
|
m.Header[k] = strings.Join(v, ",")
|
||||||
|
13
grpc.go
13
grpc.go
@ -110,13 +110,18 @@ func (g *grpcClient) next(request client.Request, opts client.CallOptions) (sele
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (g *grpcClient) call(ctx context.Context, node *registry.Node, req client.Request, rsp interface{}, opts client.CallOptions) error {
|
func (g *grpcClient) call(ctx context.Context, node *registry.Node, req client.Request, rsp interface{}, opts client.CallOptions) error {
|
||||||
|
var header map[string]string
|
||||||
|
|
||||||
address := node.Address
|
address := node.Address
|
||||||
|
|
||||||
header := make(map[string]string)
|
header = make(map[string]string)
|
||||||
if md, ok := metadata.FromContext(ctx); ok {
|
if md, ok := metadata.FromContext(ctx); ok {
|
||||||
|
header = make(map[string]string, len(md))
|
||||||
for k, v := range md {
|
for k, v := range md {
|
||||||
header[k] = v
|
header[k] = v
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
header = make(map[string]string)
|
||||||
}
|
}
|
||||||
|
|
||||||
// set timeout in nanoseconds
|
// set timeout in nanoseconds
|
||||||
@ -182,13 +187,17 @@ func (g *grpcClient) call(ctx context.Context, node *registry.Node, req client.R
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (g *grpcClient) stream(ctx context.Context, node *registry.Node, req client.Request, opts client.CallOptions) (client.Stream, error) {
|
func (g *grpcClient) stream(ctx context.Context, node *registry.Node, req client.Request, opts client.CallOptions) (client.Stream, error) {
|
||||||
|
var header map[string]string
|
||||||
|
|
||||||
address := node.Address
|
address := node.Address
|
||||||
|
|
||||||
header := make(map[string]string)
|
|
||||||
if md, ok := metadata.FromContext(ctx); ok {
|
if md, ok := metadata.FromContext(ctx); ok {
|
||||||
|
header = make(map[string]string, len(md))
|
||||||
for k, v := range md {
|
for k, v := range md {
|
||||||
header[k] = v
|
header[k] = v
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
header = make(map[string]string)
|
||||||
}
|
}
|
||||||
|
|
||||||
// set timeout in nanoseconds
|
// set timeout in nanoseconds
|
||||||
|
@ -27,7 +27,7 @@ func (r *response) Header() map[string]string {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return map[string]string{}
|
return map[string]string{}
|
||||||
}
|
}
|
||||||
hdr := make(map[string]string)
|
hdr := make(map[string]string, len(md))
|
||||||
for k, v := range md {
|
for k, v := range md {
|
||||||
hdr[k] = strings.Join(v, ",")
|
hdr[k] = strings.Join(v, ",")
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user