This is the generated log text file content.
Results 8 pass average
timing utoa 291 ms
timing utoa_ex 91 ms
timing udw2str 568 ms
timing vcrt ustr$ 400 ms
When the CPU/OS version display? Are you planning to do it as well?
(http://www.masm32.com/board/index.php?action=dlattach;topic=15381.0;id=8484)
The CPUID string and related info is not that important for this particular task, what I am inteested in is the timing of the 4 algos.
Same question again, what OS verion are you running, your display is excluding the later common control manifest.
Quote from: hutch-- on November 20, 2010, 10:27:44 AM
The CPUID string and related info is not that important for this particular task, what I am inteested in is the timing of the 4 algos.
Same question again, what OS verion are you running, your display is excluding the later common control manifest.
Same OS as I said before.
:bg
I got it in the other post.
prescott w/HTT, XP SP2 at the moment :P
Results 8 pass average
timing utoa 542 ms
timing utoa_ex 197 ms
timing udw2str 1722 ms
timing vcrt ustr$ 1795 ms
Phenom II x4 3GHz
Results 8 pass average
timing utoa 353 ms
timing utoa_ex 105 ms
timing udw2str 378 ms
timing vcrt ustr$ 744 ms
AMD Athlon II X2 215, 2700 MHz, Win 7 x64 Home Premium
Results 8 pass average
timing utoa 390 ms
timing utoa_ex 123 ms
timing udw2str 425 ms
timing vcrt ustr$ 842 ms
Atom 270, 1600 MHz, XP Pro
Results 8 pass average
timing utoa 1464 ms
timing utoa_ex 537 ms
timing udw2str 1242 ms
timing vcrt ustr$ 3085 ms
Hi,
Windows 2000 and PIII.
Regards,
Steve N.
Results 8 pass average
timing utoa 1642 ms
timing utoa_ex 653 ms
timing udw2str 2482 ms
timing vcrt ustr$ 4543 ms
Hi,
JFF, Win98, P-MMX. Took a while to run.
Cheers,
Steve
Results 8 pass average
timing utoa 14780 ms
timing utoa_ex 6983 ms
timing udw2str 38370 ms
timing vcrt ustr$ 41871 ms
Quote from: hutch-- on November 20, 2010, 10:07:22 AM
This is the generated log text file content.
Celeron M:
Results 8 pass average
timing utoa 679 ms
timing utoa_ex 302 ms
timing udw2str 1201 ms
timing vcrt ustr$ 1255 ms
gratsie all,
I think the algo that Paul Dixon wrote clearly has the legs so the strategy of adding two different algos to the library makes sense. I have verified both Ray's shorter algo and Paul's long one and they produce valid results for the entire DWORD range.
Quote from: hutch-- on November 20, 2010, 09:31:47 PM
gratsie all,
I think the algo that Paul Dixon wrote clearly has the legs so the strategy of adding two different algos to the library makes sense. I have verified both Ray's shorter algo and Paul's long one and they produce valid results for the entire DWORD range.
That's great :U
I have found an unusual effect with the last algo that is in MSVCRT, there seems to be a reasonably large timing difference from one version of MSVCRT to another. Its at its fastest on my XP sp3 box, on the same box with a VM running Win2000 its noticably slower against the others and on my win7 box its slower on an i7 quad.
may be due to added security to prevent buffer over-run
Yeah, its probably something like that or making it thread safe but it definitely justifies the "roll your own" approach.
in truth, i would prefer using the masm32 lib functions over CRT....
1) we have control over when and how the code changes, and are aware of the precise implications
2) usually faster and better :bg
i will say, the CRT is handy - sometimes you can grab a function without having to re-invent the wheel
Quote from: dedndave on November 22, 2010, 02:04:47 AM
in truth, i would prefer using the masm32 lib functions over CRT....
1) we have control over when and how the code changes, and are aware of the precise implications
2) usually faster and better :bg
i will say, the CRT is handy - sometimes you can grab a function without having to re-invent the wheel
Agreed :P