[ 
https://issues.apache.org/jira/browse/OPENNLP-1505?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17746434#comment-17746434
 ] 

ASF GitHub Bot commented on OPENNLP-1505:
-----------------------------------------

mawiesne opened a new pull request, #543:
URL: https://github.com/apache/opennlp/pull/543

   Change
   -
   - switches to `CharBuffer` in NGramCharModel
   - adjusts toLowerCase() impl in `StringUtil` 
   - improves JavaDoc of `NGramCharModel`
   - cleans some minor code dust along the path
   
   Note: Check the Evaluation Tests for: (a) correctness, (b) execution times, 
and (c) memory footprint.
   
   Tasks
   -
   Thank you for contributing to Apache OpenNLP.
   
   In order to streamline the review of the contribution we ask you
   to ensure the following steps have been taken:
   
   ### For all changes:
   - [ ] Is there a JIRA ticket associated with this PR? Is it referenced 
        in the commit message?
   
   - [ ] Does your PR title start with OPENNLP-XXXX where XXXX is the JIRA 
number you are trying to resolve? Pay particular attention to the hyphen "-" 
character.
   
   - [ ] Has your PR been rebased against the latest commit within the target 
branch (typically main)?
   
   - [ ] Is your initial contribution a single, squashed commit?
   
   ### For code changes:
   - [ ] Have you ensured that the full suite of tests is executed via mvn 
clean install at the root opennlp folder?
   - [ ] Have you written or updated unit tests to verify your changes?
   - [ ] If adding new dependencies to the code, are these dependencies 
licensed in a way that is compatible for inclusion under [ASF 
2.0](http://www.apache.org/legal/resolved.html#category-a)? 
   - [ ] If applicable, have you updated the LICENSE file, including the main 
LICENSE file in opennlp folder?
   - [ ] If applicable, have you updated the NOTICE file, including the main 
NOTICE file found in opennlp folder?
   
   ### For documentation related changes:
   - [ ] Have you ensured that format looks appropriate for the output in which 
it is rendered?
   
   ### Note:
   Please ensure that once the PR is submitted, you check GitHub Actions for 
build issues and submit an update to your PR as soon as possible.
   




> Reduce object creation in NGramCharModel and StringUtil
> -------------------------------------------------------
>
>                 Key: OPENNLP-1505
>                 URL: https://issues.apache.org/jira/browse/OPENNLP-1505
>             Project: OpenNLP
>          Issue Type: Improvement
>          Components: Language Detector
>    Affects Versions: 2.2.0
>            Reporter: Martin Wiesner
>            Assignee: Martin Wiesner
>            Priority: Major
>             Fix For: 2.2.1
>
>
> During a profiling session, I noticed that many tests in 
> opennlp.tools.langdetect take quite some time for execution. Digging deeper 
> into those tests, it quickly became obvious that StringUtil#toLowerCase() was 
> creating new Strings for every call of this method (see 
> NGramCharModel#add(...) lines 99 to 108.
> Being called in NGramCharModel quite frequently, this resulted in creation of 
> millions of String objects during building ngrams for given input.
> Aims:
>  * Reduce objection creation and thus creation of millions of string objects
>  * Improve runtime of the langdetect tests (and potentially others)
> Idea:
>  * Use (Heap)CharBuffer instead of String so that underlying char arrays can 
> be re-used, instead of copying the chars over to a new string for each 
> "toLowerCase"...
> Note:
>  * A corresponding patch / PR should be tested with/against the Evaluation 
> suite.
> Comments welcome.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to