[
https://issues.apache.org/jira/browse/NIFI-3990?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Joseph Witt updated NIFI-3990:
------------------------------
Resolution: Fixed
Status: Resolved (was: Patch Available)
+1 merged to master
> Reduce excessive garbage collection caused by record readers
> ------------------------------------------------------------
>
> Key: NIFI-3990
> URL: https://issues.apache.org/jira/browse/NIFI-3990
> Project: Apache NiFi
> Issue Type: Improvement
> Components: Extensions
> Reporter: Mark Payne
> Assignee: Mark Payne
> Fix For: 1.3.0
>
>
> Record Readers and writers use the DataTypeUtils class to coerce an object of
> one type to another type. Often, these methods are called with a
> Supplier<DateFormat> to avoid creating DateFormat objects when not necessary.
> However, the Supplier is typically created inline with a lambda when it
> doesn't need to be, and this creates significant pressure on the garbage
> collector.
> Also, the JSON Reader performs a significant amount of string concatenation
> when it encounters a Map, in order to generate the field name including the
> Map Key. This is done only so that the map key is included in the error
> message if one occurs. However, I think this should be avoided, since the
> error message already indicates the name of the map field and the value that
> could not be coerced. Avoiding the concatenation there will cut down
> significantly on GC pressure, as evidenced by object creation profiling.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)