You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Julian Hyde (Jira)" <ji...@apache.org> on 2020/04/01 23:20:00 UTC

[jira] [Commented] (CALCITE-3878) Make ArrayList creation with initial capacity when size is fixed

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

Julian Hyde commented on CALCITE-3878:
--------------------------------------

bq. So the debate make me think what shall we do in the future as a principle? Allow new ArrayList with capacity or not?

I don't think we new principles. We should trust code authors to do the right thing for a particular piece of code. The code is, as far as we know, just fine already.

If a list typically has 2 or 3 elements, probably don't use size. If a list may have hundreds of elements, and is performance-critical. specify a size.

How about you revise your PR and remove sizes where they don't make much difference? Then I'd be OK accepting it.

> Make ArrayList creation with initial capacity when size is fixed
> ----------------------------------------------------------------
>
>                 Key: CALCITE-3878
>                 URL: https://issues.apache.org/jira/browse/CALCITE-3878
>             Project: Calcite
>          Issue Type: Improvement
>          Components: core
>    Affects Versions: 1.22.0
>            Reporter: neoremind
>            Priority: Minor
>              Labels: pull-request-available
>          Time Spent: 1h 10m
>  Remaining Estimate: 0h
>
> I find many places in Calcite where _new ArrayList<>()_ is used, if the list is expected to be immutable or not resizing, it is always a good manner to create with initial capacity, better for memory usage and performance.
> I search all occurrences, focus on the core module, to make it safe, I only update local variables with fixed size and not working in recursive method. If the local variable reference goes out of scope, if resizing is needed, things will work normally as well, so no side effect, but for the "escaping" case, I am very conservative and do not change them.
>  
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)