естественно на больших блоках VirtualAlloc быстрее всех
на маленьких блоках не происходит запроса памяти у системы (очень редко), а VirtualAlloc запрашивает всегда как минимум страницу
на маленьких блоках есть зависимость от размера для всяких malloc, new,LocalAlloc,...
я сам когда то измерял
т.е. нельзя сказать, что одна из этих функций будет самой быстрой для всех маленьких размеров (до 4к)
что то быстрее для нескольких байт, а что то для сотен байт
[Win32] Про скорость выделения памяти by new,malloc,HeapAlloc и т.д.13.03.02 11:00 Штраф: 10 [KMiNT21] Автор: Xan Статус: Незарегистрированный пользователь
Тут полмесяца назад на исходниках.ru тему промусолии а терь еще и в рассылке пришла. Дема давняя но лично я для себя этих тонкостей до конца не раскрыл. в общем глянуть можно.
естественно на больших блоках VirtualAlloc быстрее всех
на маленьких блоках не происходит запроса памяти у системы (очень редко), а VirtualAlloc запрашивает всегда как минимум страницу
на маленьких блоках есть зависимость от размера для всяких malloc, new,LocalAlloc,...
я сам когда то измерял
т.е. нельзя сказать, что одна из этих функций будет самой быстрой для всех маленьких размеров (до 4к)
что то быстрее для нескольких байт, а что то для сотен байт
[Win32] Sorry. Нечаянно на штраф нажал. И еще13.03.02 17:49 Автор: KMiNT21 <http://blog.kmint21.com> Статус: Member
А вообще тут тема эта странно для меня выглядит.
Тут уже сам RTL все делает. Насколько все там продуманно - так и будет.
Самый быстрый способ, как я понимаю, - GlobalAlloc->GlobalLock