# Serve as a benchmarking base (to see how better is an implementation compared to the dumbest and simplest implementation ever =)\r
\r
There is a lot of literature on GC algorithms, but there is almost no literature of the particularities on implementing a GC in D (how to handle the stack, how finalize an object, etc.). The idea of this GC implementation is to tackle this. The collection and allocation algorithms are really simple so you can pay attention to the other stuff."
-47,New,D Garbage Collector Research,Task,Low,See if getting rid of the commit()/decommit() stuff improves Linux performance,Leandro Lucarella,"","",Leandro Lucarella,05/23/2009,"",0,"",04/10/2009 02:35 am,04/10/2009 02:35 am,Minor,"See ""Understanding the current GC, part III"":http://proj.llucax.com.ar/blog/dgc/blog/post/-243ec069 for details."
+47,New,D Garbage Collector Research,Task,Low,See if getting rid of the commit()/decommit() stuff improves Linux performance,Leandro Lucarella,"","",Leandro Lucarella,05/23/2009,"",0,"",04/10/2009 02:35 am,04/10/2009 02:35 am,Minor,"See ""Understanding the current GC, part III"":https://proj.llucax.com.ar/blog/dgc/blog/post/-243ec069 for details."
46,New,D Garbage Collector Research,Task,Normal,Rewrite the current GC implementation,Leandro Lucarella,"","",Leandro Lucarella,05/09/2009,"",0,"",04/09/2009 09:43 pm,04/09/2009 09:43 pm,Minor,The current GC implementation is much more complex than it should be. A complete rewrite maintaining all the current design should not be too hard to do.
45,New,D Garbage Collector Research,Task,High,Review the cloning and very concurrent GC papers,Leandro Lucarella,"","",Leandro Lucarella,04/11/2009,04/12/2009,0,4.0,04/05/2009 03:24 am,04/09/2009 09:57 pm,Major,"I have already read the papers ""Nonintrusive Cloning Garbage Collector with Stock Operating System Support"":http://www.cs.purdue.edu/homes/grr/snapshot-gc.ps and ""Very Concurrent Mark-&-Sweep Garbage Collection without Fine-Grain Synchronization"":http://doc.cat-v.org/inferno/concurrent_gc/.\r
\r
A combination of this 2 papers is what I'm most interested in implement so far, I have to write a better plan and description about what I want to do."
-44,New,D Garbage Collector Research,Task,Low,See how hard could it be to implement a precise GC in LDC,Leandro Lucarella,"","",Leandro Lucarella,05/09/2009,"",0,"",04/05/2009 03:18 am,04/05/2009 03:58 am,Major,"A simple approximation to a precise GC is explained in the paper ""Accurate Garbage Collection in an Uncooperative Environment"":http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.19.5570 (see the ""blog post"":http://proj.llucax.com.ar/blog/dgc/blog/post/-1ac779b for more info).\r
+44,New,D Garbage Collector Research,Task,Low,See how hard could it be to implement a precise GC in LDC,Leandro Lucarella,"","",Leandro Lucarella,05/09/2009,"",0,"",04/05/2009 03:18 am,04/05/2009 03:58 am,Major,"A simple approximation to a precise GC is explained in the paper ""Accurate Garbage Collection in an Uncooperative Environment"":https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.19.5570 (see the ""blog post"":http://proj.llucax.com.ar/blog/dgc/blog/post/-1ac779b for more info).\r
\r
Another simple approach is to use a _pinning flag_ to mark objects that can be moved (this should happen when a pointer to the object is stored in the stack, registers or any other memory that don't have type information available, or ambiguous, like unions). Heap objects should have type information available.\r
\r
@@ -21,10+21,10 @@ This open the doors to moving GCs."
43,New,D Garbage Collector Research,Task,Low,See how hard could be to implement read/write barriers in LDC,Leandro Lucarella,"","",Leandro Lucarella,05/09/2009,"",0,"",04/05/2009 03:06 am,04/05/2009 03:58 am,Major,"Having read/write barriers as part of the runtime can be very useful for, for example, gather statistics on how frequent are pointers updates to analyze how bad it could be for a reference counting or incremental/generational collectors (and to actually implement them).\r
\r
Some information is available in this ""LDC mailing list thread"":http://groups.google.com/group/ldc-dev/browse_thread/thread/ad305b6ad8e7f443."
-42,New,D Garbage Collector Research,Task,Normal,Optimize the current GC implementation,Leandro Lucarella,"","",Leandro Lucarella,05/09/2009,"",0,"",04/05/2009 02:58 am,04/11/2009 01:38 pm,Major,"There should be some optimization opportunities in the current GC implementations, as shown in this ""blog post"":http://proj.llucax.com.ar/blog/dgc/blog/post/7bdad55d.\r
+42,New,D Garbage Collector Research,Task,Normal,Optimize the current GC implementation,Leandro Lucarella,"","",Leandro Lucarella,05/09/2009,"",0,"",04/05/2009 02:58 am,04/11/2009 01:38 pm,Major,"There should be some optimization opportunities in the current GC implementations, as shown in this ""blog post"":https://proj.llucax.com.ar/blog/dgc/blog/post/7bdad55d.\r
\r
Profiling the GC can be a good start point for looking at optimization opportunities."
-41,Done,D Garbage Collector Research,Task,Immediate,Finish the current GC implementation analysis,Leandro Lucarella,"","",Leandro Lucarella,04/05/2009,04/10/2009,100,18.0,04/05/2009 02:55 am,04/11/2009 01:51 am,Major,"The blog post ""Understanding the current GC"":http://proj.llucax.com.ar/blog/dgc/blog/post/250bf643 describes how the heap and GC structures are organized in the current GC implementation, but there is no analysis on the allocation, marking and sweeping phases."
+41,Done,D Garbage Collector Research,Task,Immediate,Finish the current GC implementation analysis,Leandro Lucarella,"","",Leandro Lucarella,04/05/2009,04/10/2009,100,18.0,04/05/2009 02:55 am,04/11/2009 01:51 am,Major,"The blog post ""Understanding the current GC"":https://proj.llucax.com.ar/blog/dgc/blog/post/250bf643 describes how the heap and GC structures are organized in the current GC implementation, but there is no analysis on the allocation, marking and sweeping phases."
40,New,D Garbage Collector Research,Task,Normal,Plug Boehm-Demers-Weiser GC into D,Leandro Lucarella,"","",Leandro Lucarella,05/09/2009,"",0,"",04/05/2009 02:50 am,04/05/2009 03:58 am,Major,"""Boehm-Demers-Weiser Conservative Garbage Collector"":http://www.hpl.hp.com/personal/Hans_Boehm/gc/ is one of the most optimized, state of the art conservative collector, with optional parallel marking (to allow preemptive incremental collection).\r
\r
This collector is usually a point of comparison for any conservative collector, and it could be very nice to know how the current (and future) GC implementation(s) for D performs comparing to it."
@@ -54,4+54,4 @@ For this benchmarks, some metrics should be collected, including:
* Maximum collection pause time\r
* Total collection pause time\r
\r
-See the ""D GC Benchmark Suite"":http://proj.llucax.com.ar/blog/dgc/blog/post/-1382f6a3 blog post for more details."
+See the ""D GC Benchmark Suite"":https://proj.llucax.com.ar/blog/dgc/blog/post/-1382f6a3 blog post for more details."
index aaaed7245030db7e52a4c9618740f1b531a686fc..6ca6089e865325730a56985daedb7a23de30212d 100644 (file)
Binary files a/source/proj/dgc/informe-impresion.pdf and b/source/proj/dgc/informe-impresion.pdf differ
index 249a933bcc0bac59dbb2c3e237f04ff578c88fc0..b16c78c61f1753c9e66f2650b8b67daabca0eec6 100644 (file)
Binary files a/source/proj/dgc/informe-pc.pdf and b/source/proj/dgc/informe-pc.pdf differ
-<p>Download the <a class="reference external" href="http://proj.llucax.com.ar/home/mutest/releases/mutest.tar.gz">latest distribution tarball</a> and uncompress it.</p>
-<p>You can also download any release from the <a class="reference external" href="http://proj.llucax.com.ar/home/mutest/releases/">releases directory</a> or get it
-using <a class="reference external" href="http://git.or.cz/">Git</a> directly from the <a class="reference external" href="http://git.llucax.com.ar/w/software/mutest.git">Git repository</a>.</p>
-<p>You can get <a class="reference external" href="http://proj.llucax.com.ar/home/mutest/manual.html">this manual</a> too, or a <a class="reference external" href="http://proj.llucax.com.ar/home/mutest/manual.pdf">PDF version</a> of it.</p>
+<p>Download the <a class="reference external" href="https://proj.llucax.com.ar/home/mutest/releases/mutest.tar.gz">latest distribution tarball</a> and uncompress it.</p>
+<p>You can also download any release from the <a class="reference external" href="https://proj.llucax.com.ar/home/mutest/releases/">releases directory</a> or get it
+using <a class="reference external" href="https://git.or.cz/">Git</a> directly from the <a class="reference external" href="http://git.llucax.com.ar/w/software/mutest.git">Git repository</a>.</p>
+<p>You can get <a class="reference external" href="https://proj.llucax.com.ar/home/mutest/manual.html">this manual</a> too, or a <a class="reference external" href="http://proj.llucax.com.ar/home/mutest/manual.pdf">PDF version</a> of it.</p>
-<p>You can find some samples in the <a class="reference external" href="http://git.llucax.com.ar/w/software/mutest.git?a=tree;f=sample;h=d8ad4dd9c3428fef5963107c82ab6a5e34ec6e00;hb=HEAD">sample</a> directory.</p>
+<p>You can find some samples in the <a class="reference external" href="https://git.llucax.com.ar/w/software/mutest.git?a=tree;f=sample;h=d8ad4dd9c3428fef5963107c82ab6a5e34ec6e00;hb=HEAD">sample</a> directory.</p>
<p>This is an example taken from there. A simple <em>module</em> called <a class="reference internal" href="#factorial-c">factorial.c</a>
with its corresponding <a class="reference internal" href="#test-suite">test suite</a> (<a class="reference internal" href="#factorial-test-c">factorial_test.c</a>).</p>
<p>You can see some <a class="reference internal" href="#c-support">C++ support</a> in the <a class="reference internal" href="#exception-test-cpp">exception_test.cpp</a> <a class="reference internal" href="#test-suite">test suite</a>.</p>
index f28169b54044e7b534af0576636193bb261da273..eb19aabc71582f9110f7a72a5e401bb3a5f36938 100644 (file)
Binary files a/source/proj/mutest/releases/manual-1.0.pdf and b/source/proj/mutest/releases/manual-1.0.pdf differ