Stefan Glienke 2002 Posted February 20, 2023 (edited) Just an excerpt from the mormot2 tests (win32, win64 numbers look similar) running on an i7-12700 10.4.2 - Custom RTL: 297,648 assertions passed 285.77ms FillChar in 9.37ms, 41.4 GB/s Move in 22.25ms, 14 GB/s small Move in 25.05ms, 4.3 GB/s big Move in 25.06ms, 15.5 GB/s FillCharFast in 8.21ms, 47.3 GB/s MoveFast in 42.99ms, 7.2 GB/s small MoveFast in 17.15ms, 6.3 GB/s big MoveFast in 26.59ms, 14.6 GB/s 11.3 - Custom RTL: 297,648 assertions passed 247.86ms FillChar in 6.37ms, 60.9 GB/s Move in 10.10ms, 30.9 GB/s small Move in 17.98ms, 6 GB/s big Move in 14.77ms, 26.4 GB/s FillCharFast in 7.37ms, 52.6 GB/s MoveFast in 42.76ms, 7.3 GB/s small MoveFast in 16.83ms, 6.5 GB/s big MoveFast in 27.69ms, 14.1 GB/s The first 4 are RTL functions, last 4 are mormot implementations. Take this with a grain of salt though as these are just unit tests and not a performance benchmark but it gives a little idea. FillChar has already been improved by me for 11.1 and Move will be in 11.3 (along with other improvements in the core RTL) No, this is not suddenly making your applications twice as fast but solves the old complaints of FillChar and Move being sooo slow. 😉 Edited February 20, 2023 by Stefan Glienke 8 6 Share this post Link to post
Mike Torrettinni 198 Posted February 20, 2023 25 minutes ago, Stefan Glienke said: FillChar has already been improved by me for 11.1 and Move will be in 11.3 (along with other improvements in the core RTL) Do I understand correctly that 11.3 will include your improvements in RTL, or that you have available code patch we can apply to 11.3 when released? Share this post Link to post
Stefan Glienke 2002 Posted February 21, 2023 5 hours ago, Mike Torrettinni said: 11.3 will include your improvements in RTL This 2 11 Share this post Link to post
Fr0sT.Brutal 900 Posted March 16, 2023 Even for 10.4.2 MoveFast is far not fast 🙂 Anyway, great news! These functions are the cornerstone of most apps, nice to see them improved. I wonder what about Linux? Asm versions are Windows-only. Share this post Link to post
Stefan Glienke 2002 Posted March 16, 2023 (edited) Everything but windows uses libc memmove - we can assume they do their job and have optimized it - similar to FillChar which then uses memset. Until Embarcadero gets their sh*t together with their llvm compilers not generating kinda -O0 quality code personally I don't care about Linux performance anyway. Edited March 16, 2023 by Stefan Glienke 1 Share this post Link to post