[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Unexpected delay in using arguments.
From: |
Bize Ma |
Subject: |
Re: Unexpected delay in using arguments. |
Date: |
Tue, 14 Aug 2018 23:17:55 -0400 |
> Of course I assume this is only a proxy simpler reproducer
> for the actual problem program
Of course this is a "reproducer" of the issue.
> but just the same it is almost always possible
> to refactor a program into a different algorithm that avoids the need
> to enumerate so many arguments in memory.
As you say: "almost".
Take a look at the Stéphane Chazelas example to convince yourself.
2018-08-14 17:50 GMT-04:00 Bob Proulx <bob@proulx.com>:
> I followed along through the script:
>
> > m=20000
> ...
> > test1() { ...
>
> Eventually I got to this line:
>
> > set -- $(seq $m)
>
> At that line I see that bash must allocate enough memory to hold all
> of the numbers from 1 through 20000 in memory all at one time. That
> is very inefficient. That is at least 100K of memory.
>
> $ seq 20000 | wc -c
> 108894
>
> Of course I assume this is only a proxy simpler reproducer for the
> actual problem program but just the same it is almost always possible
> to refactor a program into a different algorithm that avoids the need
> to enumerate so many arguments in memory. I suggest refactoring the
> program to avoid the need for this memory stress.
>
> Bob
>