| View previous topic :: View next topic |
| Author |
Message |
John O'Harrow Guest
|
Posted: Thu Mar 09, 2006 10:03 pm Post subject: FastMove and Fastcode Move B&V Tool |
|
|
I have recently been looking into why FastMove makes so little difference
with Delphi 2006 applications. I know Delphi 2006 uses one of my IA32 move
routines, but I had still expected some gains from using FastMove.
Analysing all calls to system.move across a wide range of real-world
applications provided the following interesting statistics.
2% of all Moves are of Zero Size
18% of all Moves are 1 Byte or Less
26% of all Moves are 2 Bytes or Less
40% of all Moves are 4 Bytes or Less
67% of all Moves are 8 Bytes or Less
90% of all Moves are 16 Bytes or Less
97% of all Moves are 32 Bytes or Less
1% of all Moves are Overlapping Moves (Source/Destination Overlap)
Since the new RTL move routine is very efficient with moves of up to 32
bytes, and only 3% of all moves are of a size greater than this, using
FastMove with Delphi 2006 will have very little impact on most applications.
The benchmarking within the existing Fastcode Move B&V tool, although
slightly weighted towards smaller moves, does not reflect these statistics.
I therefore plan to modify the Move B&V tool to better match these
real-world statistics.
--
regards,
John
The Fastcode Project:
http://www.fastcodeproject.org/ |
|
| Back to top |
|
 |
Pierre le Riche Guest
|
Posted: Fri Mar 10, 2006 8:03 pm Post subject: Re: FastMove and Fastcode Move B&V Tool |
|
|
Hi John,
| Quote: | I have recently been looking into why FastMove makes so little difference
with Delphi 2006 applications. I know Delphi 2006 uses one of my IA32 move
|
Another likely contributing factor is that the memory manager does not use
system.move - it uses its own internal move routines.
Regards,
Pierre |
|
| Back to top |
|
 |
John O'Harrow Guest
|
Posted: Fri Mar 10, 2006 9:03 pm Post subject: Re: FastMove and Fastcode Move B&V Tool |
|
|
"Pierre le Riche" <pleriche (AT) hotmail (DOT) com> wrote in message
news:4411d469 (AT) newsgroups (DOT) borland.com...
| Quote: | Hi John,
I have recently been looking into why FastMove makes so little difference
with Delphi 2006 applications. I know Delphi 2006 uses one of my IA32
move
Another likely contributing factor is that the memory manager does not use
system.move - it uses its own internal move routines.
|
Very good point. I had overlooked that.
--
regards,
John
The Fastcode Project:
http://www.fastcodeproject.org/ |
|
| Back to top |
|
 |
Dennis Guest
|
Posted: Tue Mar 14, 2006 1:03 pm Post subject: Re: FastMove and Fastcode Move B&V Tool |
|
|
Hi John
Go ahead ;-)
This B&V is quite old and needs some updates.
You proposed a new subbenchmark.
Report failures as validation pass/fail not as exceptions.
Observe that our B&V + scoring system worked well because your new tests
confirms that the new RTL Move is very hard to beat.
I do not think that we have to change subbenchmark weigths very much,
because our functions are highly optimized and a winner is not likely to be
slow in subbenchmark4 (small moves). Subbench4 carries alot of weight as is
and I do not think we should increase it to much more. The other subbenches
are also important, but I agree that they are much less important than small
moves as your statistics show. I do not have an exact suggestion for
subbench weigths, but increasing the subbench weigth by 50% is probably ok.
Best regards
Dennis Kjaer Christensen |
|
| Back to top |
|
 |
Dennis Guest
|
Posted: Sun Apr 16, 2006 4:03 pm Post subject: Re: FastMove and Fastcode Move B&V Tool |
|
|
Hi John
Is it time for a follow up after 1 month and 2 days? :-)
Best regards
Dennis Kjaer Christensen |
|
| Back to top |
|
 |
|