On Mon, Oct 30, 2023 at 07:26:04PM +0800, Qian Yun wrote:
>
>
> On 10/30/23 09:28, Waldek Hebisch wrote:
> >
> > Have you tried to set GCL_MEM_MULTIPLE so that GCL uses slightly
> > less than 2Gb of memory? With such setting patch below should
> > be not needed. And IME parallel builds with GCL are usable
> > only with sufficiently small GCL_MEM_MULTIPLE (otherwise
> > system is thrashing).
> >
> > Setting *default-large-memory-model-p* means that generated
> > code is slower. I do not know how much slower, old info
> > said that about 7-10% slower. We should do some testing
> > to know.
>
> I run all tests in src/input, the results are:
>
> GCL_MEM_MULTIPLE:
>
> real 4m38.479s
> user 4m14.601s
> sys 0m25.861s
>
> large-memory-model-p:
>
> real 4m53.449s
> user 4m7.267s
> sys 0m48.138s
>
> So with *default-large-memory-model-p*, the code spends much more time
> in kernel space, but the overall slow down is 5%.
I run both version with GCL_MEM_MULTIPLE=0.03, test time was the same,
build time was about 3% larger. Overhead seem to be reasonably low,
so I commited the patch. FYI, I see essentially the same kernel
time in both cases.
BTW, I also tested ECL on the same machine. The results are
(all parallel with -j 20):
GCL, old setting:
real 0m57,734s
user 3m54,550s
sys 0m33,744s
GCL, *default-large-memory-model-p*:
real 0m56,231s
user 3m54,650s
sys 0m32,983s
ECL 21.2.1:
real 2m54,068s
user 21m57,290s
sys 1m22,064s
ECL 23.9.9:
real 2m59,574s
user 25m4,375s
sys 1m24,747s
sbcl 2.3.8:
real 0m39,432s
user 2m14,932s
sys 0m12,555s
So, on my machine GCL is about 1.73 times slower than sbcl,
ECL 21.2.1 is 9.76 times slower than sbcl and ECL 23.9.9 is
11.14 times slower than sbcl. So, ECL is _much_ slower than
GCL and apparantly with new versions ECL is getting slower...
--
Waldek Hebisch