News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

The last (I hope) benchmark for utoa algos.

Started by hutch--, November 30, 2010, 01:54:04 AM

Previous topic - Next topic

hutch--

I have put all of the viable utoa style algos into this benchmark, Ray original that returns a pointer to the start of the characters, Paul Dixons version, Brethren's modified vrsion, Lingo's mod on Pauls algo and a modified version of Rays algo just to make sure I had done justice to it timing wise. The MSVCRT version is there for comparison. I modified Lingo's version using his suggestion to balance the CALL RET pairing which slightly slowed it down but it is still a fast algo.

With the shorter algo, brethren's has the legs, with the two long versions I get identical times between Pauls original and Lingo's mod.

These are the results I am getting on my dev Core2 quad.


Intel(R) Core(TM)2 Quad CPU Q9650 @ 3.00GHz
Results 8 pass average
timing Ray original utoa 234 ms
timing Paul Dixon utoa_ex 78 ms
timing brethren utoa2 172 ms
timing Lingo utoa_ex 78 ms
timing msvc ustr$ 390 ms
timing Ray modified utoa3 234 ms


I would be interested in seeing timing differences on different hardware.

These are the timings on my old timers.



Genuine Intel(R) CPU 3.80GHz
Results 8 pass average
timing Ray original utoa 360 ms
timing Paul Dixon utoa_ex 125 ms
timing brethren utoa2 265 ms
timing Lingo utoa_ex 125 ms
timing msvc ustr$ 1418 ms
timing Ray modified utoa3 360 ms

Intel(R) Pentium(R) 4 CPU 2.80GHz
Results 8 pass average
timing Ray original utoa 1123 ms
timing Paul Dixon utoa_ex 316 ms
timing brethren utoa2 593 ms
timing Lingo utoa_ex 328 ms
timing msvc ustr$ 2017 ms
timing Ray modified utoa3 734 ms

Intel(R) Celeron(TM) CPU 1200MHz
Results 8 pass average
timing Ray original utoa 920 ms
timing Paul Dixon utoa_ex 380 ms
timing brethren utoa2 613 ms
timing Lingo utoa_ex 368 ms
timing msvc ustr$ 2686 ms
timing Ray modified utoa3 831 ms
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

dedndave

prescott w/htt
Intel(R) Pentium(R) 4 CPU 3.00GHz
Results 8 pass average
timing Ray original utoa   482 ms
timing Paul Dixon utoa_ex  177 ms
timing brethren utoa2      367 ms
timing Lingo utoa_ex       173 ms
timing msvc ustr$         1761 ms
timing Ray modified utoa3  470 ms


naw - when you get this one thoroughly tested, we will pop a new algo on you   :P

clive

Might get to a few systems, here's the older Netbook

Intel(R) Atom(TM) CPU N270 @ 1.60GHz
Results 8 pass average
timing Ray original utoa 1275 ms
timing Paul Dixon utoa_ex 536 ms
timing brethren utoa2 920 ms
timing Lingo utoa_ex 542 ms
timing msvc ustr$ 3095 ms
timing Ray modified utoa3 1429 ms


Old dual Celeron/Mendocino
Results 8 pass average
timing Ray original utoa 2800 ms
timing Paul Dixon utoa_ex 1240 ms
timing brethren utoa2 1875 ms
timing Lingo utoa_ex 1113 ms
timing msvc ustr$ 14712 ms
timing Ray modified utoa3 2533 ms
It could be a random act of randomness. Those happen a lot as well.

lingo

Intel(R) Core(TM)2 Duo CPU E8500 @ 3.16GHz
Results 8 pass average
timing Ray original utoa 234 ms
timing Paul Dixon utoa_ex 78 ms
timing brethren utoa2 156 ms
timing Lingo utoa_ex 62 ms
timing msvc ustr$ 374 ms
timing Ray modified utoa3 234 ms

oex

AMD Sempron(tm) Processor 3100+
Results 8 pass average
timing Ray original utoa 556 ms
timing Paul Dixon utoa_ex 160 ms
timing brethren utoa2 332 ms
timing Lingo utoa_ex 170 ms
timing msvc ustr$ 1851 ms
timing Ray modified utoa3 550 ms

Oh and I found out why the version info was showing.... I used your created object file.... Looks like I'll have to work out how to write my own with 6.15 ::)
We are all of us insane, just to varying degrees and intelligently balanced through networking

http://www.hereford.tv

frktons


Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz
Results 8 pass average
timing Ray original utoa 306 ms
timing Paul Dixon utoa_ex 171 ms
timing brethren utoa2 220 ms
timing Lingo utoa_ex 165 ms
timing msvc ustr$ 711 ms
timing Ray modified utoa3 296 ms
Mind is like a parachute. You know what to do in order to use it :-)

Farabi

I wonder, why MS did not use lingo algo than using their existing one? That was slow, but nevermind, I can use it as a weapon for my software company against HLL  :green
Those who had universe knowledges can control the world by a micro processor.
http://www.wix.com/farabio/firstpage

"Etos siperi elegi"

brethren

AMD Turion(tm) 64 X2 Mobile Technology TL-52
Results 8 pass average
timing Ray original utoa 613 ms
timing Paul Dixon utoa_ex 187 ms
timing brethren utoa2 375 ms
timing Lingo utoa_ex 185 ms
timing msvc ustr$ 2052 ms
timing Ray modified utoa3 617 ms

FORTRANS

Hi,

P-MMX Win98.

Results 8 pass average
timing Ray original utoa 13785 ms
timing Paul Dixon utoa_ex 9154 ms
timing brethren utoa2 9237 ms
timing Lingo utoa_ex 8940 ms
timing msvc ustr$ 42941 ms
timing Ray modified utoa3 13943 ms


P-III Win2k

Results 8 pass average
timing Ray original utoa 1523 ms
timing Paul Dixon utoa_ex 678 ms
timing brethren utoa2 1021 ms
timing Lingo utoa_ex 598 ms
timing msvc ustr$ 4445 ms
timing Ray modified utoa3 1381 ms


Cheers,

Steve N.

MichaelW

Results for a 500MHz P3 (the blocks were the ASCII characters 1, 1, 2, and 3):


Results 8 pass average
timing Ray original utoa 2556 ms
timing Paul Dixon utoa_ex 1142 ms
timing brethren utoa2 1711 ms
timing Lingo utoa_ex 1017 ms
timing msvc ustr$ 7445 ms
timing Ray modified utoa3 2313 ms

eschew obfuscation

mineiro

Intel(R) Pentium(R) Dual CPU E2160 @ 1.80GHz
Results 8 pass average
timing Ray original utoa 377 ms
timing Paul Dixon utoa_ex 125 ms
timing brethren utoa2 265 ms
timing Lingo utoa_ex 127 ms
timing msvc ustr$ 921 ms
timing Ray modified utoa3 375 ms

Astro

AMD Phenom II X4 970 @ 3.5 GHz (stock speed).
Results 8 pass average
timing Ray original utoa 263 ms
timing Paul Dixon utoa_ex 83 ms
timing brethren utoa2 144 ms
timing Lingo utoa_ex 80 ms
timing msvc ustr$ 633 ms
timing Ray modified utoa3 257 ms


I think that is correct; the GUI ran and I just copied the figures. I'm assuming they are ms.

Win 7 chokes and sometimes says "Not Responding" though it is still running. I ran the test multiple times; I found it was sometimes slower on the first run after loading, even though it was not the first time it was loaded.

Best regards,
Robin.

Yuri


Intel(R) Core(TM) i3 CPU 540 @ 3.07GHz
Results 8 pass average
timing Ray original utoa 250 ms
timing Paul Dixon utoa_ex 78 ms
timing brethren utoa2 158 ms
timing Lingo utoa_ex 62 ms
timing msvc ustr$ 419 ms
timing Ray modified utoa3 230 ms

jj2007

Here it is :U

Intel(R) Celeron(R) M CPU 420 @ 1.60GHz
Results 8 pass average
timing Ray original utoa 607 ms
timing Paul Dixon utoa_ex 285 ms
timing brethren utoa2 437 ms
timing Lingo utoa_ex 281 ms
timing msvc ustr$ 1205 ms
timing Ray modified utoa3 578 ms