[
https://issues.apache.org/jira/browse/FLINK-9435?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Nico Kruber updated FLINK-9435:
-------------------------------
Description:
Inside {{KeySelectorUtil}}, every {{ComparableKeySelector#getKey()}} call
currently creates a new tuple from
{{Tuple.getTupleClass(keyLength).newInstance();}} which seems expensive.
Instead, we could get a template tuple and use {{Tuple#copy()}} which copies
the right sub-class in a more optimal way.
Similarly, {{ArrayKeySelector}
was:Every {{ComparableKeySelector#getKey()}} call currently creates a new
tuple from {{Tuple.getTupleClass(keyLength).newInstance();}} which seems
expensive. Instead, we could get a template tuple and use {{Tuple#copy()}}
which copies the right sub-class in a more optimal way.
> Remove per-key selection Tuple instantiation via reflection in
> ComparableKeySelector and ArrayKeySelector
> ---------------------------------------------------------------------------------------------------------
>
> Key: FLINK-9435
> URL: https://issues.apache.org/jira/browse/FLINK-9435
> Project: Flink
> Issue Type: Improvement
> Components: Streaming
> Affects Versions: 1.3.0, 1.3.1, 1.4.0, 1.3.2, 1.3.3, 1.5.0, 1.4.1, 1.4.2,
> 1.6.0
> Reporter: Nico Kruber
> Assignee: Nico Kruber
> Priority: Major
>
> Inside {{KeySelectorUtil}}, every {{ComparableKeySelector#getKey()}} call
> currently creates a new tuple from
> {{Tuple.getTupleClass(keyLength).newInstance();}} which seems expensive.
> Instead, we could get a template tuple and use {{Tuple#copy()}} which copies
> the right sub-class in a more optimal way.
> Similarly, {{ArrayKeySelector}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)