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)

Reply via email to