Jump to content
Stefan Glienke

Some sneak peek of some performance numbers with 11.3

Recommended Posts

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 by Stefan Glienke
  • Like 8
  • Thanks 6

Share this post


Link to post
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

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

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 by Stefan Glienke
  • Thanks 1

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×