Link to home
Start Free TrialLog in
Avatar of shawn857
shawn857

asked on

Using FastMM4... should I enable MMX option?

Dear experts, I've been using FastMM4 in my projects for some time now and it does make a significant difference in program speed. I haven't really played with the options very much but I see there is a MMX setting that will reportedly increase performance even more. Currently I have this off (see attached screenshot). Do you think it's worthwhile turning it on.... with no downside risk?

Thanks
   Shawn

P.S: I use Delphi 7
FastMM4.JPG
SOLUTION
Avatar of Sinisa Vuk
Sinisa Vuk
Flag of Croatia image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
ASKER CERTIFIED SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of shawn857
shawn857

ASKER

Thanks guys... well I did a few timing comparison tests of my app with different FastMM4 settings. The notes regarding the EnableMMX setting said this:

"MMX is currently only used in the variable size move routines, so if UseCustomVariableSizeMoveRoutines is not set then this option has no effect."

So that made me have a look at the UseCustomVariableSizeMoveRoutines setting. I had this setting on. In the notes for that it mentioned:

"Disable this option when using the Fastcode move ("FastMove") library."

And I *do* in fact use the FastCode/FastMove in my app - so I thought turning this off should help. Anyway, I tried 3 different configurations and timing tests:

(1) My original settings which were EnableMMX OFF and UseCustomVariableSizeMoveRoutines ON. This gave an average run-time of my app of 7.94 secs
(2) Then I tried EnableMMX ON (with ForceMMX OFF), and UseCustomVariableSizeMoveRoutines still ON. This gave an average run-time of 7.95 secs.
(3) Then finally I set EnableMMX  OFF and also UseCustomVariableSizeMoveRoutines OFF. This actually resulted a slightly slower average run-time of 8.18 secs. I was surprised by this one - thought it would be the best of the lot.

Seems I was best off with my original settings. Maybe I'll just leave well enough alone!

Shawn
Sometimes helps if you do some code optimization.
Yes I have done some Sinisa... I just wondering if that FastMM4 option would be any further help.

Thanks
   Shawn
Actually, I use FastMM in some projects and with default options I get significant speed-up (mostly in string manipulation). But I do some optimizations and pass PChar into procedures (pointer to string), then minimize string manipulation (s := s + 'something' lots of time) with re-arranging algorithm ...
Thanks Sinisa... yes good advice, I actually also do that as much as possible also.

Kimputer, you mention free the Visual Studio Express... is that Delphi/Pascal? EXE's created in that environment indeed run faster?

Thanks
   Shawn
Microsoft's Visual Studio Express is not Delphi/Pascal. It's either Visual Basic, C++ or C#. Since it's based on newer code, it should be indeed faster.

If you really want to stick with Pascal though, there's some free products: http://www.lazarus-ide.org/index.php?page=downloads
Again, newer product, so theoratically it should perform better with newer hardware.

Obviously, if you run something as simple as one recursive math problem, no complicated code is involved, then maybe speed doesn't matter at all between older and newer compilers.
Thank you guys!

Cheers
   Shawn