Martin Wiesner created OPENNLP-1466:
---------------------------------------
Summary: Convert the use of Collection#toArray(..) more performant
version under modern JVMs
Key: OPENNLP-1466
URL: https://issues.apache.org/jira/browse/OPENNLP-1466
Project: OpenNLP
Issue Type: Task
Affects Versions: 2.1.0, 2.1.1
Reporter: Martin Wiesner
Assignee: Martin Wiesner
In older Java versions, using a pre-sized array was preferred, as the
reflection call necessary to create an array of pre-computed size was rather
slow. However, since Java 6+, the performance of the empty array version the
same, and sometimes even better. [1] [2]
The code of many OpenNLP classes still relies on the old style of converting
collections to arrays, via {{someCollection.toArray(...size()) or similar, in
essence: via a pre-computed length. However, the zero-sized initialization is
considered (and demonstrated) to be faster under Java 11+ vms. [3]}}
Aims
* Migrate the old way of creating / converting to arrays to the more
performant version.
* Ensure all tests hold no drawbacks show up.
[1]:
[https://shipilev.net/blog/2016/arrays-wisdom-ancients/#_new_reflective_array]
[2]:
[https://www.baeldung.com/java-collection-toarray-methods#performance-trials]
[3]:
[https://www.baeldung.com/java-collection-toarray-methods#benchmarks-on-newer-jdks]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)