На моем предыдущем рабочем месте мы использовали TeamCity. Это очень легко и способно использовать. Это может использоваться бесплатно с некоторыми ограничениями. Существует также учебное руководство на Броски Десяти центов . Причина мы не использовали CruiseControl.NET, состоит в том, что у нас было много маленьких проектов, и это довольно болезненно для установки каждого в CC.NET. Я настоятельно рекомендовал бы TeamCity. Чтобы подвести итог, если Вы находитесь к открытому исходному коду тогда, CC.NET является главным папой с кривой немного высшего образования. Если Ваш бюджет позволяет Вам, определенно идут с TeamCity или проверяют бесплатную версию.
Предел памяти для каждого процесса составляет 2 ГБ (если вы не используете переключатель Windows / 3 ГБ ). Однако вы, вероятно, столкнулись с фрагментацией памяти. Когда память фрагментируется (визуализируйте с помощью VMMap ), вы не сможете выделить большой непрерывный блок. Возможны следующие варианты:
В 32-битной ОС Windows каждый процесс получает 4 ГБ виртуального адресного пространства, из которых 2 ГБ доступны для пользователя, а 2 ГБ - для ядра. Таким образом, любые выделенные ресурсы должны быть в пределах этих 2 ГБ. Обратите внимание, что эти 2 ГБ содержат другие вещи, такие как другие библиотеки DLL, которые загружаются вашим приложением, поэтому эта память фрагментирована. Когда вы выполняете malloc (), поскольку malloc гарантирует, что он возвращает непрерывный блок памяти, CRT попытается найти 1 ГБ постоянной свободной памяти, которая может быть недоступна, поэтому malloc () не работает. Один из способов решения этой проблемы - использовать файлы с отображением памяти и отобразить только часть необходимой памяти в ваше виртуальное адресное пространство.
Если в пространстве виртуальной памяти недостаточно непрерывного пространства, невозможно реальное отображение блока памяти для его использования. Так что вам следует проверить области своей памяти.
Куда привязаны ваши dll и exes? Существует инструмент rebase.exe, который является частью структуры ms vc, который позволит вам перераспределить позицию, в которую загружена ваша dll или exe. Это может дать вам больше свободного места в виртуальной памяти, что позволит вам получить больше блоков памяти.
Параметр профиля «обходчик зависимостей» покажет вам, где находятся ваши dll и exe. загружаются в.
vmmap из sysinternals, чтобы лучше понять, как mwmory фрагментируется и обрабатывается.