Size: a a a

2020 February 18

DB

Dmitry Belkevich in Delphi & Lazarus
обещают ускорение. как конкретно завязан сказать не могу, надо смотреть код
источник

DB

Dmitry Belkevich in Delphi & Lazarus
возможно что-то более оптимально считается avx'ом, что вполне может быть
источник

AS

Alexey Shumkin in Delphi & Lazarus
Dmitry Belkevich
возможно что-то более оптимально считается avx'ом, что вполне может быть
Считается? Менеджером памяти? Он же только выделяет её, не?
источник

DB

Dmitry Belkevich in Delphi & Lazarus
ну там кода немало
источник

I

Igor in Delphi & Lazarus
большая разрядность регистров ускоряет операции копирования
источник

I

Igor in Delphi & Lazarus
там табличка со сравнением скорости в ридми
источник

DB

Dmitry Belkevich in Delphi & Lazarus
глянь как-нибудь в fastmm, там кода хватает
источник

DB

Dmitry Belkevich in Delphi & Lazarus
ну и да, move может быть быстрее
источник

SB

Sergey Bodrov in Delphi & Lazarus
Realloc быстрее
источник

SB

Sergey Bodrov in Delphi & Lazarus
И насколько понял, оптимизации для лучшего попадания страниц памяти в кеш процессора.
источник

DB

Dmitry Belkevich in Delphi & Lazarus
по реаллок: думаю, там уже всё проверено на скорость максимально )
кеш, вообще, оптимизировать можно очень продуктивно. я реально видел сильное улучшение из-за лучшего попадания массива в кэш
источник

DB

Dmitry Belkevich in Delphi & Lazarus
там к слову бенефиты расписаны:

if the CPU supports AVX or AVX2, use the 32-byte YMM registers for faster memory copy, and if the CPU supports AVX-512, use the 64-byte ZMM registers for even faster memory copy; use DisableAVX to turn AVX off completely or use DisableAVX1/DisableAVX2/DisableAVX512 to disable separately certain AVX-related instruction set from being compiled into FastMM4);
if EnableAVX is defined, all memory blocks are aligned by 32 bytes, but you can also use Align32Bytes define without AVX; please note that the memory overhead is higher when the blocks are aligned by 32 bytes, because some memory is lost by padding;
with AVX, memory copy is secure - all XMM/YMM/ZMM registers used to copy memory are cleared by vxorps/vpxor, so the leftovers of the copied memory are not exposed in the XMM/YMM/ZMM registers;

и так далее

ну и вишенка:

support for Lazarus 1.6.4 with FreePascal (the original FastMM4 4.992 requires modifications, it doesn't work under Lazarus 1.6.4 with FreePascal out-of-the-box, also tested under Lazarus 1.8.2 / FPC 3.0.4 with Win32 target;
источник

DB

Dmitry Belkevich in Delphi & Lazarus
всё, забрал в бэту на тесты )
источник

GB

George Bakhtadze in Delphi & Lazarus
так avx не везде ж есть
источник

DB

Dmitry Belkevich in Delphi & Lazarus
>if the CPU supports AVX or AVX2
я так понимаю - что юзают по возможности
источник

GB

George Bakhtadze in Delphi & Lazarus
здорово, а то  у FPC менеджер памяти не очень
источник

DB

Dmitry Belkevich in Delphi & Lazarus
только что вот эта дописка не нравится: with Win32 target
источник

SB

Sergey Bodrov in Delphi & Lazarus
Я так понял, это касалось старого FastMM4
источник

DB

Dmitry Belkevich in Delphi & Lazarus
забрал, посмотрю что там. менеджер было бы хорошо обновить в линуксе
источник

AK

Alexey Kulakov in Delphi & Lazarus
а что не так с менеджером памяти в фрипаскаля? и вопрос ещё, lineinfo и heaptrc же не будут с fastmm работать?
источник