+ Allocator project
authorsjg <sjg@web>
Thu, 2 Sep 2010 00:04:28 +0000 (17:04 -0700)
committerCharlie <root@leaf.dragonflybsd.org>
Thu, 2 Sep 2010 00:04:28 +0000 (17:04 -0700)
docs/developer/researchprojectspage/index.mdwn

index 34acdbb..db01aa6 100644 (file)
@@ -28,3 +28,16 @@ Please feel free to add projects to this page, or annotate existing project idea
 
 ### Kernel VIRTUAL MACHINE
 * opcode vm in kernel for various purposes? What could be accomplished with this?
+
+### Allocator meta-madness
+* Modern general purpose allocators usually use 2-3 or more different allocation strategies for differently sized allocations.
+* Modern general purpose allocators try _very hard_ to optimize for all circumstances, many allocations/frees, many allocations/few frees, short-running applications, long-running applications, internal and external fragmentation, etc.
+* It may be possible to develop a framework by which simple allocators are matched up to programs based on their allocation behavior that performs better all-around than complex modern general purpose allocators using a variety of simple allocators.
+* Profile programs memory allocation and usage behavior to determine an optimal allocator type to use.
+* Short-running applications will simply want something really cheap to setup, etc.
+* Dispatch to the most efficient allocator implementation on future execution.
+* Perhaps allocators can export their size range and a series of flags indicating what they are suited for, and the profiling could build a set of flags based on application behavior.
+* This could be done per-thread in a lockless fashion and coalesced with weights atexit().
+* The scope of this work might be appropriate for a PhD or Masters thesis.
+* Such a framework likely would not replace the base system allocator but if it were lightweight enough could possibly augment (and/or incorporate) it.
+* For applications definitely known to work better under some configuration, flags could be seeded and pkgsrc could link those apps against the best alternative meta-allocator.