<commit_before>## Memory allocation

We're looking for a fast user-space storage allocator.

Here are some options:

Link                License         Notes
----                -------         -----
[RTMalloc][]        GPL/LGPL        Two-level segregated fit, high performance
[tlsf][]            PD              Another TLSF implementation
[BGET][]            Public Domain   First fit or best fit, performance?
[dlmalloc][]        PD              Best fit, not threadsafe, realtime safe?
[nedmalloc][]       Boost           dlmalloc derivate, multithreaded, fast, realtime safe?
[ptmalloc3][]       PD?             dlmalloc derivate, realtime safe?
[tcmalloc][]        ?               Includes memory profiler, realtime safe?
[BSA++][]           GPL             Adaptive allocator

[BGET]:         http://www.fourmilab.ch/bget/
[RTMalloc]:     http://rtportal.upv.es/rtmalloc/
[dlmalloc]:     http://gee.cs.oswego.edu/dl/html/malloc.html
[nedmalloc]:    http://www.nedprod.com/programs/portable/nedmalloc/index.html
[ptmalloc3]:    http://www.malloc.de/
[tcmalloc]:     http://code.google.com/p/google-perftools/
[tlsf]:         http://tlsf.baisoku.org/
[BSA++]:        http://www.ercoppa.org/malloc/bsapp.htm

### Literature

See [IBM Inside memory management](http://www.ibm.com/developerworks/linux/library/l-memory/) for an overview and also the seminal paper [Dynamic Storage Allocation: A Survey and Critical Review][Wilson95] by Wilson et. al.

[Wilson95]:     ftp://osinside.net/pub/DynamicStorageAllocationSurvey-.pdf<commit_msg>Add a link to concurrency primitives<commit_after>## Memory allocation

We're looking for a fast user-space storage allocator.

Here are some options:

Link                License         Notes
----                -------         -----
[RTMalloc][]        GPL/LGPL        Two-level segregated fit, high performance
[tlsf][]            PD              Another TLSF implementation
[BGET][]            Public Domain   First fit or best fit, performance?
[dlmalloc][]        PD              Best fit, not threadsafe, realtime safe?
[nedmalloc][]       Boost           dlmalloc derivate, multithreaded, fast, realtime safe?
[ptmalloc3][]       PD?             dlmalloc derivate, realtime safe?
[tcmalloc][]        ?               Includes memory profiler, realtime safe?
[BSA++][]           GPL             Adaptive allocator

[BGET]:         http://www.fourmilab.ch/bget/
[RTMalloc]:     http://rtportal.upv.es/rtmalloc/
[dlmalloc]:     http://gee.cs.oswego.edu/dl/html/malloc.html
[nedmalloc]:    http://www.nedprod.com/programs/portable/nedmalloc/index.html
[ptmalloc3]:    http://www.malloc.de/
[tcmalloc]:     http://code.google.com/p/google-perftools/
[tlsf]:         http://tlsf.baisoku.org/
[BSA++]:        http://www.ercoppa.org/malloc/bsapp.htm

### Literature

See [IBM Inside memory management](http://www.ibm.com/developerworks/linux/library/l-memory/) for an overview and also the seminal paper [Dynamic Storage Allocation: A Survey and Critical Review][Wilson95] by Wilson et. al.

[Wilson95]:     ftp://osinside.net/pub/DynamicStorageAllocationSurvey-.pdf

## Concurrency

Here's an implementation of an [AtomicDouble](http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/src/jsr166e/extra/AtomicDouble.java?view=markup) in Java by Doug Lea, useful as a synchronization primitive for control buses, where a spinlock would be overkill.
{'fraction_non_alphanumeric': 0.1275465013286094, 'fraction_numerical': 0.005314437555358724, 'mean_word_length': 2.496388028895769, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 10, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2699350', 'n_tokens_mistral': 1060, 'n_tokens_neox': 1007, 'n_words': 260}