pgsql: Optimize JSON escaping using SIMD
От | David Rowley |
---|---|
Тема | pgsql: Optimize JSON escaping using SIMD |
Дата | |
Msg-id | E1saviI-002m91-Uo@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Optimize JSON escaping using SIMD Here we adjust escape_json_with_len() to make use of SIMD to allow processing of up to 16-bytes at a time rather than processing a single byte at a time. This has been shown to speed up escaping of JSON strings significantly. Escaping is required for both JSON string properties and also the property names themselves, so this should also help improve the speed of the conversion from JSON into text for JSON objects that have property names 16 or more bytes long. Escaping JSON strings was often a significant bottleneck for longer strings. With these changes, some benchmarking has shown a query performing nearly 4 times faster when escaping a JSON object with a 1MB text property. Tests with shorter text properties saw smaller but still significant performance improvements. For example, a test outputting 1024 JSON strings with a text property length ranging from 1 char to 1024 chars became around 2 times faster. Author: David Rowley Reviewed-by: Melih Mutlu Discussion: https://postgr.es/m/CAApHDvpLXwMZvbCKcdGfU9XQjGCDm7tFpRdTXuB9PVgpNUYfEQ@mail.gmail.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/ca6fde92258a328a98c1d9e41da5462b73da8529 Modified Files -------------- src/backend/utils/adt/json.c | 104 ++++++++++++++++++++++++++++++++++++- src/test/regress/expected/json.out | 48 +++++++++++++++++ src/test/regress/sql/json.sql | 7 +++ 3 files changed, 157 insertions(+), 2 deletions(-)
В списке pgsql-committers по дате отправления: