pingcap / pingcap/tidb

performance of UnmarshalJSON can be improved

Open
#46,880 0 comments 0 reactions 1 assignee Assigned to @YangKeao View on GitHub
component/json sig/sql-infra type/enhancement
Dominant language
Go
Stars
40.5k
Forks
6.2k
PR merge metrics
PR metrics pending

Description

## Enhancement
![img_v2_bd2c91d6-951a-4fb2-9ff3-f692d448510g](https://github.com/pingcap/tidb/assets/5151781/08810848-50fd-40bc-a4c1-b89499810560)

[cpu_tidb_infra-tidb-sql-shopping-catalog-prod-0a019c93.ec2.pin220.com_4000_3049994070.proto.zip](https://github.com/pingcap/tidb/files/12579512/cpu_tidb_infra-tidb-sql-shopping-catalog-prod-0a019c93.ec2.pin220.com_4000_3049994070.proto.zip)

UnmarshalJSON is CPU-consuming and can be improved:
```
golang encoding/json
BenchmarkUnmarshalJSON-8 122 9183362 ns/op
github.com/valyala/fastjson
BenchmarkUnmarshalJSON-8 466 2988689 ns/op
```
But appendBinaryJSON needs to been refactored to accept the input parsed by fastjson.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.