Приветствую! Посоветуйте плиз, какую из виндовых функций лучше использовать для создания (и обработки) 13 динамическимх массивов по ~20000 элементов в каждом массиве, каждый элемент (заполненная структура) весит не более 1кб данных. Спасибо.
Если пишешь на дельфи, то юзай GetMem, если API, то HeapAlloc. Если сильно нужна производительность, то можно создать длл на дельфи и с нее экспортировать GetMem/FreeMem (размер длл около 15 кил) или пиши свой менеджер кучи.
> "или пиши свой менеджер кучи" Менеджер кучи нужен до кучи )) Т.е. тогда, когда - куча-мала )) Ладно, оставим каламбуры. Полноценные менеджеры нужны тогда, когда неизвестно какого размера и в каком порядке будут создаваться и освобождаться блоки памяти, а точнее известно, что могут быть любого размера и в любом порядке. Если максимальный размер достаточно большой и известен заранее как в данном случае, то остается пара вариантов: либо несколько отдельных аллоков на каждый массив, либо общий VirtualAlloc с mem_reserve и тривиальным менеджером для контроля и наращивания mem_commit. Что касается HeapXXX: 1) в Win 9x Heap ограничена 4Mb, поэтому если нужно больше 1-2Мб, то "настоятельно рекомендуют" Virtual 2) в NT-based'ах по моему скромному ИМХО при вызове HeapXXX рулит некое правило: если размер < big_alloc (порядка 1Мб), то рулит классический хиповый менеджер, а если больше, то вызывается тот же VirtualAlloc.