У нас иногда возникали проблемы, из-за которых наши длительные серверные процессы (работающие на Windows Server 2003) породили исключение из-за отказа в распределении памяти. Наше подозрение в том, что эти распределения не выполняются из-за фрагментации памяти.
Поэтому мы рассматриваем некоторые альтернативные механизмы распределения памяти, которые могут нам помочь, и я надеюсь, что кто-то скажет мне лучший:
1) Используйте Windows Куча с низкой фрагментацией
2) jemalloc - как используется в Firefox 3
3) Doug Lea malloc
Наш серверный процесс разработан с использованием кросс-платформенного кода на С++, поэтому любое решение будет идеально также кросс-платформенным (операционные системы do * nix страдают от такого рода фрагментации памяти?).
Кроме того, я прав, полагая, что LFH теперь является механизмом распределения памяти по умолчанию для Windows Server 2008/Vista?... Будут ли мои текущие проблемы "уходить", если наши клиенты просто обновят свой сервер os?