On Sun, Sep 5, 2021 at 7:02 AM tapi...@gmail.com <tapir....@gmail.com>
wrote:

>
>
> On Sunday, September 5, 2021 at 12:52:06 AM UTC-4 Kurtis Rader wrote:
>
>> On Sat, Sep 4, 2021 at 9:38 PM tapi...@gmail.com <tapi...@gmail.com>
>> wrote:
>>
>>> Why? That is an undocumented implementation detail. Furthermore, the
>>>> length of "x1" and "x2" at the time when they are appended to, in
>>>> combination with the value being appended, are reasonable predictors of the
>>>> capacity of the new slice. It is up to you to prove that a different
>>>> heuristic performs better.
>>>>
>>>
>>> Are there some evidences to prove the current algorithm is better?
>>>
>>
There are two ways in which the current algorithm may be "better" than the
alternative:
• If the alternative is to always double, then the current algorithm saves
significant memory for large slices, which is better.
• The alternative is to use 1.25 starting at a different threshold (you
can't *always* use 1.25, as that would fail for n<4). Finding evidence of
whether this is better is easy: change the code, run the benchmarks, see
how they change.


> It is your responsibility to show that a different heuristic (not
>> "algorithm"). is better.
>>
>
> I have shown some examples above, which outputs will be more in line with
> exception
> if the heuristic will only depends on the sum length of the two arguments.
>

Okay. Your expectation is wrong. What's the problem with that?

I have *never* cared about how much `append` grows a slice. Not even once.
Even if I had cared to make a prediction and that prediction turned out
wrong, it would never have mattered. Why do you think it does?


>
> Clarification: I don't think the exponential growth algorithm is bad.
> I just think it should make the capacities increase monotonically.
>
>
>>
>> --
>> Kurtis Rader
>> Caretaker of the exceptional canines Junior and Hank
>>
> --
> You received this message because you are subscribed to the Google Groups
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to golang-nuts+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/golang-nuts/8892db72-1392-4ee3-b336-5c64c6ef7f1cn%40googlegroups.com
> <https://groups.google.com/d/msgid/golang-nuts/8892db72-1392-4ee3-b336-5c64c6ef7f1cn%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/CAEkBMfHFxDUtxUHseMp0_ahizFsm3Z%3DzJTsMFMT3%2BbEcXKY5ug%40mail.gmail.com.

Reply via email to