chicken-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 1/2] Prevent excessive major gcs by having decent amount of u


From: Mario Domenech Goulart
Subject: Re: [PATCH 1/2] Prevent excessive major gcs by having decent amount of unused heap
Date: Tue, 12 Jan 2021 19:17:48 +0100

Hi Sven,

On Tue, 12 Jan 2021 13:44:04 +0100 (CET) Sven Hartrumpf <hartrumpf@gmx.net> 
wrote:

> Mario wrote, 2021-01-12 12:39:
>>
>> On Tue, 12 Jan 2021 11:42:31 +0100 (CET) Sven Hartrumpf <hartrumpf@gmx.net> 
>> wrote:
>>
>>> Mario, 2021-01-10 10:03:
>>>>
>>>> On Sat, 09 Jan 2021 15:14:31 +0100 (CET) Sven Hartrumpf 
>>>> <hartrumpf@gmx.net> wrote:
>>>>
>>>>> Thanks for the patches and the tests!
>>>>>
>>>>>> I ran a relatively extensive set of benchmark configurations comparing
>>>>>> CHICKEN from master against CHICKEN from master plus the patches.
>>>>>
>>>>> I would like to run some real-world benchmarks.
>>>>> They are dynamically linked.
>>>>> Would it be enough to run them with the different libchicken.so.11 
>>>>> versions
>>>>> (before and after GC patch) or should I recompile my programs?
>>>>
>>>> If your binaries are dynamically linked and use a version of CHICKEN
>>>> which is ABI-compatible with the code in master (ABI version 11),
>>>> switching libchicken.so (e.g., via LD_LIBRARY_PATH) without recompiling
>>>> your code should do the trick.
>>>>
>>>> If you can, please let us know about your benchmark results.
>>>
>>> The results for x86-64 show improvements (- 2 % run time);
>>> for i586 and x32, the results show slowdowns (+ 1-2 % run time):
>>>
>>> GC     arch.   avg. runtime in ms
>>>
>>> old gc x86-64  615
>>> new gc x86-64  601
>>>
>>> old gc x32     505
>>> new gc x32     509
>>>
>>> old gc i586    728
>>> new gc i586    739
>>>
>>> (My benchmark is a semantic natural language parser, which is GC-intensive.
>>> C compiler is gcc 9.3.0 from Ubuntu 20.10.)
>>>
>>> Maybe the changes are somewhat biased for x86-64 and
>>> could be adjusted for i586 and x32?
>>
>> Thanks for sharing your results.
>>
>> To be honest, the differences in your results are so small I'd flag them
>> as "noise".
>> Are you sure the right CHICKEN libraries were being used?
>
> Yes. I checked it several times and ran all benchmarks at least 3
> times.

Ok.  Thanks for confirming that.

> For the longer run times, I also guess that this might be a random effect
> of other GC settings etc.

Could be.  Do you compile/run your program with some non-default options?

> If "x86-86" in http://parenteses.org/mario/misc/benchmarks-megane/ means
> "x86-64",

Indeed.  It was a typo.  Thanks for spotting and reporting it.  I've
fixed it.

> then you have already checked for two of the three discussed
> architectures that the GC changes are improving runtime on average.
> (If you have some time, maybe a comparison with x32 would be interesting.)

I can try that.  Would you recommend any Linux distribution that
provides an installer with x32 support?  Or any convenient method to get
a x32 system running?

I'm also gonna run the benchmarks on Ubuntu 20.10 with the same
toolchain you used to see if the toolchain could be responsible for
flattening the results.

Some combinations benefit much more than others.  For example,
http://parenteses.org/mario/misc/benchmarks-megane/x86/stock-vs-megane-gcc.html
is amazing, but
http://parenteses.org/mario/misc/benchmarks-megane/x86-64/stock-vs-megane-extra-clang-speed.html
not so much.

It might also be the case that your application simply doesn't benefit
from the patches...

Since you asked whether recompilation of programs was necessary, I
suppose it is not easy for you to call your application with the `time'
macro wrapping a strategic entrypoint, right (it'd require recompiling
it)?  With that we could have a better idea on how the patches influence
the runtime aspects of your program (e.g., number of GCs, their duration
etc.).

All the best.
Mario
-- 
http://parenteses.org/mario



reply via email to

[Prev in Thread] Current Thread [Next in Thread]