lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Adrien Grand (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (LUCENE-7268) Remove ArrayUtil.timSort?
Date Mon, 02 May 2016 08:36:12 GMT

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

Adrien Grand commented on LUCENE-7268:
--------------------------------------

I did some testing and the difference seems to be due to how our impl in ArrayUtil tries to
save memory: it uses a hard-coded {{array.length/64}} as the maximum size of the temporary
Object[] that it may use for merging. If it needs less memory than that, it will use this
temporary Object[], but for larger merges it will switch to an in-place merge routine that
is much slower (the same logic that InPlaceMergeSorter uses). I get the following build times
with the patch:

|| Arrays.sort | 222ms |
|| ArrayUtil.timSort - max temp storage = array.length | 262ms |
|| ArrayUtil.timSort - max temp storage = array.length/64 (like in master) | 383ms |
|| ArrayUtil.timSort - max temp storage = 0 | 444ms |


> Remove ArrayUtil.timSort?
> -------------------------
>
>                 Key: LUCENE-7268
>                 URL: https://issues.apache.org/jira/browse/LUCENE-7268
>             Project: Lucene - Core
>          Issue Type: Improvement
>            Reporter: Robert Muir
>         Attachments: LUCENE-7268_mods.patch
>
>
> Is there some workload where our timSort is better than the JDK one? Should we just remove
ours if its slower?
> Not that its a great test, but i switched Polygon2D edge sorting (just the one where
it says "sort the edges then build a balanced tree from them") from Arrays.sort to ArrayUtil.timSort
and was surprised when performance was much slower for an enormous polygon (http://people.apache.org/~mikemccand/geobench/cleveland.poly.txt.gz)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message