Can I have some benchmarks, please?
Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz (SSE4)
626 cycles for 100 * New Bin$
1027 cycles for 100 * MasmBasic Bin$
1538 cycles for 100 * Masm32 SDK bin$()
619 cycles for 100 * New Bin$
1027 cycles for 100 * MasmBasic Bin$
1557 cycles for 100 * Masm32 SDK bin$()
617 cycles for 100 * New Bin$
1028 cycles for 100 * MasmBasic Bin$
1541 cycles for 100 * Masm32 SDK bin$()
618 cycles for 100 * New Bin$
1028 cycles for 100 * MasmBasic Bin$
1540 cycles for 100 * Masm32 SDK bin$()
156 bytes for New Bin$
16 bytes for MasmBasic Bin$
19 bytes for Masm32 SDK bin$()
New Bin$ 10010010011111111100001111000011
MasmBasic Bin$ 10010010011111111100001111000011
Masm32 SDK bin$() 10010010011111111100001111000011
AMD Athlon Gold 3150U with Radeon Graphics (SSE4)
599 cycles for 100 * New Bin$
996 cycles for 100 * MasmBasic Bin$
1964 cycles for 100 * Masm32 SDK bin$()
772 cycles for 100 * New Bin$
1126 cycles for 100 * MasmBasic Bin$
1407 cycles for 100 * Masm32 SDK bin$()
529 cycles for 100 * New Bin$
921 cycles for 100 * MasmBasic Bin$
1335 cycles for 100 * Masm32 SDK bin$()
532 cycles for 100 * New Bin$
918 cycles for 100 * MasmBasic Bin$
1333 cycles for 100 * Masm32 SDK bin$()
156 bytes for New Bin$
16 bytes for MasmBasic Bin$
19 bytes for Masm32 SDK bin$()
P.S.: Strangely enough, there seems no bin$() macro in the Masm32 SDK. Here it is:
bin$ MACRO src
ifndef bin$buffer
.DATA?
bin$buffer db 36 dup(?)
.CODE
endif
mov edx, offset bin$buffer
push edx
invoke dw2bin_ex, src, edx
pop eax
EXITM <eax>
ENDM
Intel(R) Core(TM) i3-4005U CPU @ 1.70GHz (SSE4)
692 cycles for 100 * New Bin$
1305 cycles for 100 * MasmBasic Bin$
1661 cycles for 100 * Masm32 SDK bin$()
704 cycles for 100 * New Bin$
1337 cycles for 100 * MasmBasic Bin$
1683 cycles for 100 * Masm32 SDK bin$()
719 cycles for 100 * New Bin$
1315 cycles for 100 * MasmBasic Bin$
1713 cycles for 100 * Masm32 SDK bin$()
704 cycles for 100 * New Bin$
1305 cycles for 100 * MasmBasic Bin$
1691 cycles for 100 * Masm32 SDK bin$()
160 bytes for New Bin$
16 bytes for MasmBasic Bin$
19 bytes for Masm32 SDK bin$()
New Bin$10010010011111111100001111000011
MasmBasic Bin$10010010011111111100001111000011
Masm32 SDK bin$()10010010011111111100001111000011
--- ok ---
Intel(R) Pentium(R) M processor 1.70GHz (SSE2)
1611 cycles for 100 * New Bin$
1865 cycles for 100 * MasmBasic Bin$
3470 cycles for 100 * Masm32 SDK bin$()
1609 cycles for 100 * New Bin$
1865 cycles for 100 * MasmBasic Bin$
3451 cycles for 100 * Masm32 SDK bin$()
1611 cycles for 100 * New Bin$
1860 cycles for 100 * MasmBasic Bin$
3447 cycles for 100 * Masm32 SDK bin$()
1612 cycles for 100 * New Bin$
1864 cycles for 100 * MasmBasic Bin$
3470 cycles for 100 * Masm32 SDK bin$()
160 bytes for New Bin$
16 bytes for MasmBasic Bin$
19 bytes for Masm32 SDK bin$()
New Bin$10010010011111111100001111000011
MasmBasic Bin$10010010011111111100001111000011
Masm32 SDK bin$()10010010011111111100001111000011
--- ok ---
Quote from: jj2007 on August 04, 2023, 11:07:44 PMCan I have some benchmarks, please?
Hi
Jochen, :thumbsup:
Intel(R) Core(TM) i7-6850K CPU @ 3.60GHz (SSE4)
585 cycles for 100 * New Bin$
1095 cycles for 100 * MasmBasic Bin$
1401 cycles for 100 * Masm32 SDK bin$()
590 cycles for 100 * New Bin$
1095 cycles for 100 * MasmBasic Bin$
1403 cycles for 100 * Masm32 SDK bin$()
589 cycles for 100 * New Bin$
1096 cycles for 100 * MasmBasic Bin$
1402 cycles for 100 * Masm32 SDK bin$()
584 cycles for 100 * New Bin$
1100 cycles for 100 * MasmBasic Bin$
1401 cycles for 100 * Masm32 SDK bin$()
156 bytes for New Bin$
16 bytes for MasmBasic Bin$
19 bytes for Masm32 SDK bin$()
New Bin$ 10010010011111111100001111000011
MasmBasic Bin$ 10010010011111111100001111000011
Masm32 SDK bin$() 10010010011111111100001111000011
--- ok ---
Thanks, Steve & Alex! One more - New Bin$() rocks:
Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz (SSE4)
760 cycles for 100 * Mb Bin$ v2
1023 cycles for 100 * MasmBasic Bin$ (current version)
535 cycles for 100 * New Bin$()
1539 cycles for 100 * Masm32 SDK bin$()
759 cycles for 100 * Mb Bin$ v2
1023 cycles for 100 * MasmBasic Bin$ (current version)
533 cycles for 100 * New Bin$()
1537 cycles for 100 * Masm32 SDK bin$()
759 cycles for 100 * Mb Bin$ v2
1026 cycles for 100 * MasmBasic Bin$ (current version)
532 cycles for 100 * New Bin$()
1535 cycles for 100 * Masm32 SDK bin$()
156 bytes for Mb Bin$ v2
16 bytes for MasmBasic Bin$ (current version)
87 bytes for New Bin$()
19 bytes for Masm32 SDK bin$()
Mb Bin$ v2 10010010011111111100001111000011
MasmBasic Bin$ (current version) 10010010011111111100001111000011
New Bin$() 10010010011111111100001111000011
Masm32 SDK bin$() 10010010011111111100001111000011
AMD Athlon Gold 3150U with Radeon Graphics (SSE4)
550 cycles for 100 * Mb Bin$ v2
954 cycles for 100 * MasmBasic Bin$ (current version)
438 cycles for 100 * New Bin$()
1359 cycles for 100 * Masm32 SDK bin$()
556 cycles for 100 * Mb Bin$ v2
946 cycles for 100 * MasmBasic Bin$ (current version)
423 cycles for 100 * New Bin$()
1360 cycles for 100 * Masm32 SDK bin$()
549 cycles for 100 * Mb Bin$ v2
944 cycles for 100 * MasmBasic Bin$ (current version)
421 cycles for 100 * New Bin$()
1351 cycles for 100 * Masm32 SDK bin$()
553 cycles for 100 * Mb Bin$ v2
953 cycles for 100 * MasmBasic Bin$ (current version)
422 cycles for 100 * New Bin$()
1354 cycles for 100 * Masm32 SDK bin$()
Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz (SSE4)
708 cycles for 100 * Mb Bin$ v2
1177 cycles for 100 * MasmBasic Bin$ (current version)
478 cycles for 100 * New Bin$()
1494 cycles for 100 * Masm32 SDK bin$()
707 cycles for 100 * Mb Bin$ v2
1174 cycles for 100 * MasmBasic Bin$ (current version)
470 cycles for 100 * New Bin$()
1492 cycles for 100 * Masm32 SDK bin$()
707 cycles for 100 * Mb Bin$ v2
1174 cycles for 100 * MasmBasic Bin$ (current version)
475 cycles for 100 * New Bin$()
1494 cycles for 100 * Masm32 SDK bin$()
707 cycles for 100 * Mb Bin$ v2
1175 cycles for 100 * MasmBasic Bin$ (current version)
475 cycles for 100 * New Bin$()
1492 cycles for 100 * Masm32 SDK bin$()
156 bytes for Mb Bin$ v2
16 bytes for MasmBasic Bin$ (current version)
87 bytes for New Bin$()
19 bytes for Masm32 SDK bin$()
Mb Bin$ v2 10010010011111111100001111000011
MasmBasic Bin$ (current version) 10010010011111111100001111000011
New Bin$() 10010010011111111100001111000011
Masm32 SDK bin$() 10010010011111111100001111000011
Yet another
Intel(R) Core(TM) i7-7660U CPU @ 2.50GHz (SSE4)
440 cycles for 100 * New Bin$
810 cycles for 100 * MasmBasic Bin$
1039 cycles for 100 * Masm32 SDK bin$()
441 cycles for 100 * New Bin$
808 cycles for 100 * MasmBasic Bin$
1096 cycles for 100 * Masm32 SDK bin$()
441 cycles for 100 * New Bin$
817 cycles for 100 * MasmBasic Bin$
1036 cycles for 100 * Masm32 SDK bin$()
446 cycles for 100 * New Bin$
810 cycles for 100 * MasmBasic Bin$
1035 cycles for 100 * Masm32 SDK bin$()
156 bytes for New Bin$
16 bytes for MasmBasic Bin$
19 bytes for Masm32 SDK bin$()
New Bin$ 10010010011111111100001111000011
MasmBasic Bin$ 10010010011111111100001111000011
Masm32 SDK bin$() 10010010011111111100001111000011
This is the 64 bits version :biggrin:
This use Timers64.asm, a translation from Michael Webster original in 32 bits.
No MasmBasic functions, obviously.
This use Masm64 SDK, and ML64. Because is a fast translation still requiere SmplMath, and code size calculations is unfinished (or look like that).
Intel(R)l(R) Cor) i3-101-10100 C 3.60GHz0GHz (SSE4)
loop overhead is approx. 1080/100 cycles
381 cycles for 100 * Mb Bin$ v2
311 cycles for 100 * New Bin$()
741 cycles for 100 * Masm32 SDK bin$()
358 cycles for 100 * Mb Bin$ v2
264 cycles for 100 * New Bin$()
762 cycles for 100 * Masm32 SDK bin$()
369 cycles for 100 * Mb Bin$ v2
278 cycles for 100 * New Bin$()
755 cycles for 100 * Masm32 SDK bin$()
370 cycles for 100 * Mb Bin$ v2
240 cycles for 100 * New Bin$()
739 cycles for 100 * Masm32 SDK bin$()
4423903 = rax Mb Bin$ v2
0 = rax MasmBasic Bin$ (current version)
4426096 = rax New Bin$()
5476816 = rax Masm32 SDK bin$()
--- ok ---
Quote from: HSE on August 05, 2023, 10:10:32 PMThis is the 64 bits version :biggrin:
Remarkable :thumbsup:
IntelCore(TM)(TM) i5-M CPU @ U @ 2.50 (SSE4)
loop overhead is approx. 1289/100 cycles
644 cycles for 100 * Mb Bin$ v2
278 cycles for 100 * New Bin$()
891 cycles for 100 * Masm32 SDK bin$()
651 cycles for 100 * Mb Bin$ v2
232 cycles for 100 * New Bin$()
894 cycles for 100 * Masm32 SDK bin$()
662 cycles for 100 * Mb Bin$ v2
217 cycles for 100 * New Bin$()
900 cycles for 100 * Masm32 SDK bin$()
645 cycles for 100 * Mb Bin$ v2
227 cycles for 100 * New Bin$()
911 cycles for 100 * Masm32 SDK bin$()
17727711 = rax Mb Bin$ v2
0 = rax MasmBasic Bin$ (current version)
17729904 = rax New Bin$()
18780624 = rax Masm32 SDK bin$()