Recommendations for improvement
status-kvo opened this issue · 3 comments
status-kvo commented
You have a cool revision of the library and I always use it with pleasure even in XE11, but one function is missing, this is the procedure Move.
У вас классная доработка библиотеки и я с удовольствием всегда пользуюсь ее даже в ХЕ11, но не хватает одной функции это процедуры Move
Example
FastMM4.pas
interface
...
type
TMoveProc = procedure(const ASource; var ADest; ACount: NativeInt);
var
gMove: TMoveProc;
implementation
...
procedure InitializeBlockTypeSizes;
...
gMove := SmallBlockTypes[LInd].UpsizeMoveProcedure;
...
end;
...
procedure RunInitializationCode;
begin
gMove := System.Move;
...
end;
end.
Example1
gMove(Source^, Target^, Size);
maximmasiutin commented
Thank you! I will add this code replace the system Move to the faster one.
status-kvo commented
CompareMem it wouldn't be bad either. it wouldn't be bad either. With AVX/AVX2,AVX512 technology
maximmasiutin commented
I wanted to add the code to replace System move in FastMM4-AVX, but found out that FastMM4 has only fixed-size move routines, with a minimal granularity of 8 bytes, or I missed something?