reductor wrote:
> C>Например, если нельзя допускать пауз GC и большого оверхеда
> C>конкурентного GC. Или если существуют гораздо более эффективные методы
> C>управления памятью для данной задачи (preallocated пулы, например). Или
> C>если требуется *детерминированое* уничтожение объекта.
> Вы на чей вопрос здесь отвечаете?
> Я спрашивал для каких задач. Конкретнее.
Игры, требовательные десктопные приложения, системный софт.
> Опять же, про паузы интересно.
RTFM:
http://www.memorymanagement.org/
> C>А в С++ нет проблем с алиасингом. Более того, он тоже успешно
> C>используется для некоторых трюков.
> Переведите
В С++ нет проблем с накладывающимися массивами, так как они с помощью
адресной арифметики могут быть использованы для интересных
inplace-преобразований.
> C>Вот вам прямо с About Haskell
> Что вы хотели сказать цитированием мне этого sales talk десятилетней
> давности?
А что, вы один должны гнать sales-talk десятилетней давности про GC?
> C>В С++ продумано взаимодействие аллокаторов, стандартных контейнеров,
> C>алгоритмов и т.п. Например, как мне поместить в контейнер OCaml'а
> C>объект, созданый в блоке shared memory? Причем указатели в этом объекте
> C>представлены в виде смещений относительно начала блока, а null pointer
> C>представлен в виде указателя со смещением -1.
> Вы будете продолжать фантазировать или хотя бы прочитаете мануал по
> окамлу?
КАК мне разместить, скажем, список OCaml'а в shared memory и передать на
него ссылку в другой процесс? В С++ это делается так:
//Type of shared memory vector
typedef vector<int, shmem_allocator_int_t > MyVect;
//Create named vector
MyVect *shmem_vect = segment.construct<MyVect>
("ShmVect")(segment.get_raw_alloc_algo());
for(int i = 0; i < max; ++i){
shmem_vect->push_back(i);
}
В другом процессе:
typedef vector<int, shmem_allocator_int_t > MyVect;
MyVect *shmem_vect = segment.find<MyVect>("ShmVect").first;
//А теперь можно, например, посортировать вектор.
std::sort(shmem_vect->rbegin(), shmem_vect->rend());
Хотя я знаю, что вы скажете — дадите мне ссылку на документацию по FFI и
станете рассказывать, что shared memory устарел и никому не нужен.
--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 2.0