| Thread overview | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
January 04, 2015 call for GC benchmarks | ||||
|---|---|---|---|---|
| ||||
I'd like to have a few more real world GC benchmarks in druntime. The current ones are all rather micro-benchmarks, some of them don't even create garbage. So if someone has a program that is heavily GC limited, I'd be interested in seeing that converted to a benchmark. Made the start with one https://github.com/D-Programming-Language/druntime/pull/1078 that resembles a mysql to mongodb importer I wrote recently. | ||||
January 04, 2015 Re: call for GC benchmarks | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Martin Nowak | On 4 January 2015 at 15:37, Martin Nowak via Digitalmars-d <digitalmars-d@puremagic.com> wrote:
> I'd like to have a few more real world GC benchmarks in druntime.
> The current ones are all rather micro-benchmarks, some of them don't even
> create garbage.
>
> So if someone has a program that is heavily GC limited, I'd be interested in seeing that converted to a benchmark.
>
> Made the start with one https://github.com/D-Programming-Language/druntime/pull/1078 that resembles a mysql to mongodb importer I wrote recently.
VisualD used to be my poster-child of GC problem cases. Rainer wrote
his whole new GC for it.
I wonder if the code can still run against the builtin GC to reproduce
the original problem?
| |||
January 04, 2015 Re: call for GC benchmarks | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Manu | On Sunday, 4 January 2015 at 06:04:38 UTC, Manu via Digitalmars-d wrote:
> I wonder if the code can still run against the builtin GC to reproduce
> the original problem?
OK, will have a look.
| |||
January 04, 2015 Re: call for GC benchmarks | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Martin Nowak | On 5 January 2015 at 01:26, Martin Nowak via Digitalmars-d <digitalmars-d@puremagic.com> wrote:
> On Sunday, 4 January 2015 at 06:04:38 UTC, Manu via Digitalmars-d wrote:
>>
>> I wonder if the code can still run against the builtin GC to reproduce the original problem?
>
>
> OK, will have a look.
Recall rainer lectured on it as dconf2013. So there's measurements there too.
| |||
January 04, 2015 Re: call for GC benchmarks | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Martin Nowak | On Sunday, 4 January 2015 at 05:38:06 UTC, Martin Nowak wrote: > I'd like to have a few more real world GC benchmarks in druntime. > The current ones are all rather micro-benchmarks, some of them don't even create garbage. > > So if someone has a program that is heavily GC limited, I'd be interested in seeing that converted to a benchmark. > Did you see Maxime's post here: http://pointersgonewild.com/2014/10/26/circumventing-the-d-garbage-collector/ | |||
January 05, 2015 Re: call for GC benchmarks | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Martin Nowak | Am 04.01.2015 um 06:37 schrieb Martin Nowak:
> I'd like to have a few more real world GC benchmarks in druntime.
> The current ones are all rather micro-benchmarks, some of them don't
> even create garbage.
>
> So if someone has a program that is heavily GC limited, I'd be
> interested in seeing that converted to a benchmark.
>
> Made the start with one
> https://github.com/D-Programming-Language/druntime/pull/1078 that
> resembles a mysql to mongodb importer I wrote recently.
I have a 3D Space shooter implemented in D. Before I transitioned it over to complete manual memory management, the GC was the biggest bottleneck. Would you be interrested in something like that as well, or are smaller applications with a command line interface preferred?
If you are interrested I might be able to branch of a old revision and make it compile with the latest dmd again.
Kind Regards
Benjamin Thaut
| |||
January 05, 2015 Re: call for GC benchmarks | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Martin Nowak | On Sunday, 4 January 2015 at 05:38:06 UTC, Martin Nowak wrote:
> I'd like to have a few more real world GC benchmarks in druntime.
> The current ones are all rather micro-benchmarks, some of them don't even create garbage.
>
> So if someone has a program that is heavily GC limited, I'd be interested in seeing that converted to a benchmark.
>
> Made the start with one https://github.com/D-Programming-Language/druntime/pull/1078 that resembles a mysql to mongodb importer I wrote recently.
You could try building really old versions of DCD. I converted my entire D parsing library to allocators several months ago and got a huge speed boost.
| |||
January 05, 2015 Re: call for GC benchmarks | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Benjamin Thaut | On 01/05/2015 11:26 AM, Benjamin Thaut wrote:
> If you are interrested I might be able to branch of a old revision and
> make it compile with the latest dmd again.
I'm interested in realistically simulating your allocation patterns.
That includes types and allocation sizes, allocation order, lifetime and connectivity.
Definitely sounds interesting.
| |||
January 05, 2015 Re: call for GC benchmarks | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Martin Nowak | On Monday, 5 January 2015 at 14:52:36 UTC, Martin Nowak wrote:
> On 01/05/2015 11:26 AM, Benjamin Thaut wrote:
>> If you are interrested I might be able to branch of a old revision and
>> make it compile with the latest dmd again.
>
> I'm interested in realistically simulating your allocation patterns.
> That includes types and allocation sizes, allocation order, lifetime and connectivity.
> Definitely sounds interesting.
Maybe make a proxy GC, record all allocations to a file,
then "replay" those allocations as a benchmark?
| |||
January 05, 2015 Re: call for GC benchmarks | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Kiith-Sa | Am 05.01.2015 um 17:02 schrieb Kiith-Sa:
> On Monday, 5 January 2015 at 14:52:36 UTC, Martin Nowak wrote:
>> On 01/05/2015 11:26 AM, Benjamin Thaut wrote:
>>> If you are interrested I might be able to branch of a old revision and
>>> make it compile with the latest dmd again.
>>
>> I'm interested in realistically simulating your allocation patterns.
>> That includes types and allocation sizes, allocation order, lifetime
>> and connectivity.
>> Definitely sounds interesting.
>
> Maybe make a proxy GC, record all allocations to a file,
> then "replay" those allocations as a benchmark?
That won't work. Not only the allocations are important but the pointers between them as well. Your proposed solution would only work if all pointers within a D program are known and could be recorded.
| |||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply