www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - call for GC benchmarks

reply Martin Nowak <code+news.digitalmars dawg.eu> writes:
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.
Jan 03 2015
next sibling parent reply Manu via Digitalmars-d <digitalmars-d puremagic.com> writes:
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?
Jan 03 2015
parent reply "Martin Nowak" <code dawg.eu> writes:
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.
Jan 04 2015
parent Manu via Digitalmars-d <digitalmars-d puremagic.com> writes:
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.
Jan 04 2015
prev sibling next sibling parent "Mike" <none none.com> writes:
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/
Jan 04 2015
prev sibling next sibling parent reply Benjamin Thaut <code benjamin-thaut.de> writes:
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
Jan 05 2015
parent reply Martin Nowak <code+news.digitalmars dawg.eu> writes:
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.
Jan 05 2015
parent reply "Kiith-Sa" <kiithsacmp gmail.com> writes:
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?
Jan 05 2015
parent reply Benjamin Thaut <code benjamin-thaut.de> writes:
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.
Jan 05 2015
parent Martin Nowak <code+news.digitalmars dawg.eu> writes:
On 01/05/2015 06:18 PM, Benjamin Thaut wrote:
 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.
And I'm also interested in the type information.
Jan 05 2015
prev sibling parent "Brian Schott" <briancschott gmail.com> writes:
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.
Jan 05 2015