[
https://issues.apache.org/jira/browse/LANG-413?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Henri Yandell closed LANG-413.
------------------------------
Resolution: Fixed
svn ci -m "Applying Cedrik Lime's patch to LANG-413; improving the memory
footprint of getLevenshteinDistance" src
Sending src/java/org/apache/commons/lang/StringUtils.java
Transmitting file data .
Committed revision 630580.
> Memory usage improvement for StringUtils#getLevenshteinDistance()
> -----------------------------------------------------------------
>
> Key: LANG-413
> URL: https://issues.apache.org/jira/browse/LANG-413
> Project: Commons Lang
> Issue Type: Improvement
> Affects Versions: 2.3
> Reporter: Cédrik LIME
> Priority: Minor
> Fix For: 2.4
>
> Attachments: StringUtils-Levenshtein.patch
>
>
> StringUtils#getLevenshteinDistance() has recently been optimized to conserve
> a whole lot of memory, which is good. Since the algorithm is symmetric, we
> can go even further by selecting the shortest of the 2 input Strings to work
> upon :
> Index:
> /Documents/workspace/commons-lang/src/java/org/apache/commons/lang/StringUtils.java
> ===================================================================
> ---
> /Documents/workspace/commons-lang/src/java/org/apache/commons/lang/StringUtils.java
> (revision 629728)
> +++
> /Documents/workspace/commons-lang/src/java/org/apache/commons/lang/StringUtils.java
> (working copy)
> @@ -5737,6 +5737,15 @@
> return n;
> }
>
> + if (n > m) {
> + // swap the input strings to consume less memory in p[] and d[]
> + String tmp = s;
> + s = t;
> + t = tmp;
> + n = m;
> + m = t.length();
> + }
> +
> int p[] = new int[n+1]; //'previous' cost array, horizontally
> int d[] = new int[n+1]; // cost array, horizontally
> int _d[]; //placeholder to assist in swapping p and d
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.