Re: Разыскивается allocator
От: Alex Alexandrov США  
Дата: 03.11.07 05:59
Оценка: 19 (1)
Здравствуйте, eao197, Вы писали:

E>Коллеги,


E>нужен быстрый аллокатор, удовлетворяющий следующим условиям:

E>* распределять нужно блоки фиксированного, известного в compile-time, размера;
E>* количество этих блоков заранее неизвестно и не органичено (т.е. аллокаторы на пулах фиксированного размера не проходят);
E>* thread-safe;
E>* кроссплатформенный.
E>* свободный (в идеале BSD/MIT лицензия, в случае GPL придется делать свою реализацию под BSD лицензией).

E>Интересуют не только готовые реализации, но и алгоритмы подобных аллокаторов, чтобы в случае чего самому можно было реализовать.


E>Спасибо.


Библиотека Intel Threading Building Blocks содержит scalable memory allocator, весьма эффективный в случае многопоточного применения. Стоит посмотреть в его сторону тоже.
It's kind of fun to do the impossible (Walt Disney)
Re[2]: Разыскивается allocator
От: remark Россия http://www.1024cores.net/
Дата: 06.11.07 08:21
Оценка:
Здравствуйте, Alex Alexandrov, Вы писали:

AA>Здравствуйте, eao197, Вы писали:


E>>Коллеги,


E>>нужен быстрый аллокатор, удовлетворяющий следующим условиям:

E>>* распределять нужно блоки фиксированного, известного в compile-time, размера;
E>>* количество этих блоков заранее неизвестно и не органичено (т.е. аллокаторы на пулах фиксированного размера не проходят);
E>>* thread-safe;
E>>* кроссплатформенный.
E>>* свободный (в идеале BSD/MIT лицензия, в случае GPL придется делать свою реализацию под BSD лицензией).

E>>Интересуют не только готовые реализации, но и алгоритмы подобных аллокаторов, чтобы в случае чего самому можно было реализовать.


E>>Спасибо.


AA>Библиотека Intel Threading Building Blocks содержит scalable memory allocator, весьма эффективный в случае многопоточного применения. Стоит посмотреть в его сторону тоже.



Он пока слабо портирован. Сейчас афаик только Win32 и Linux. Обещают правда расширять этот список, но обещанного 3 года ждут...



1024cores — all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re: Разыскивается allocator
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 27.03.08 13:53
Оценка:
Вот, наткнулся на такую штуку: TLSF: Memory Allocator for Real-Time

TLSF is a general purpose dynamic memory allocator specifically designed to meet real-time requirements:

* Bounded Response Time. The worst-case execution time (WCET) of memory allocation and deallocation has got to be known in advance and be independent of application data. TLSF has a constant cost O(1).

* Fast. Additionally to a bounded cost, the allocator has to be efficient and fast enough. TLSF executes a maximum of 168 processor instructions in a x86 architecture. Depending on the compiler version and optimisation flags, it can be slightly lower or higher.

* Efficient Memory Use. Traditionally, real-time systems run for long periods of time and some (embedded applications), have strong constraints of memory size. Fragmentation can have a significant impact on such systems. It can increase dramatically, and degrade the system performance. A way to measure this efficiency is the memory fragmentation incurred by the allocator. TLSF has been tested in hundreds of different loads (real-time tasks, general purpose applications, etc.) obtaining an average fragmentation lower than 15 %. The maximum fragmentation measured is lower than 25%.


Судя по исходникам, штука исключительно Linux-овая. Лицензий две GPL и LGPL.
В общем, до кучи -- вдруг кому понадобится.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re: Разыскивается allocator
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 27.03.08 13:56
Оценка:
Еще до кучи:

Memory Allocation: Either Love It or Hate It (or just think it’s okay) -- презентация Андрея Александреску на тему аллокаторов.

Composing High-Perfomance Memory Allocators -- статья, на которую ссылается Александреску в своей презентации.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.