s
date
не считать, а понять - что быстрее. Считать из-под ОС вообще дело странное.Да и не так уж и много, один
date +%s%N
- ~2344746 ns (~2.3447 ms)Ну можно и посчитать))
Size: a a a
E
date
не считать, а понять - что быстрее. Считать из-под ОС вообще дело странное.date +%s%N
- ~2344746 ns (~2.3447 ms)d
.global _user_memset2
_user_memset2:
dest = 4
val = 8
count = 12
cur = edi
size = ecx
movzx eax, byte ptr val[esp]
mov ecx, 0x1010101
mul ecx
mov edx, edi
mov cur, dest[esp]
mov size, count[esp]
test size, size
jz 1f
test cur, 1
jz 0f
stos [cur], al
lea size, [size - 1]
0: test size, 1
jz 0f
mov [cur + size - 1], al
lea size, [size - 1]
0: test cur, 2
jz 0f
stos [cur], ax
lea size, [size - 2]
0: test size, 2
jz 0f
mov [cur + size - 2], ax
lea size, [size - 2]
0: shr size, 2
rep stos [cur], eax
1: mov edi, edx
mov eax, dest[esp]
ret
получил значительный прирост производительности с этой версией, чуть более 4ёх раз по сравнению с более ранней версией без rep stosd
d
d
d
ЕP
楽