castile created NIFI-14155:
------------------------------
Summary: JsonParserFactory will create an new ObjctMapper when
process every flowfile, and the performance drops by more than 50%.
Key: NIFI-14155
URL: https://issues.apache.org/jira/browse/NIFI-14155
Project: Apache NiFi
Issue Type: Improvement
Components: Core Framework, Examples
Affects Versions: 1.26.0
Reporter: castile
Attachments: image-2025-01-14-22-32-30-460.png,
image-2025-01-14-22-37-44-670.png, image-2025-01-14-22-39-57-860.png,
image-2025-01-14-22-41-56-719.png
Our team is using nifi1.26.0. When using UpdateRecord processor or other
processor sets that inherit
org.apache.nifi.processors.standard.AbstractRecordProcessor, we found that its
processing performance dropped by more than 50%. After our analysis, we found
that in the Parser object created by org.apache.nifi.json.JsonParserFactory, an
ObjectMapper object is created when processing each data, which consumes a lot
of performance.
!image-2025-01-14-22-32-30-460.png|width=522,height=258!
ObjectMapper is a heavyweight object and is thread-safe. It seems that a static
global ObjectMapper should be created.
We have run the performance tests and found that it was useful,here is the
compare results:
BEFORE:
!image-2025-01-14-22-41-56-719.png|width=447,height=120!
AFTER:
!image-2025-01-14-22-39-57-860.png|width=631,height=172!
When each JSON data is large, the gap will be more obvious!!!!
--
This message was sent by Atlassian Jira
(v8.20.10#820010)