Size: a a a

Ассемблер

2021 August 30

d

disba1ancer in Ассемблер
а если не через rdtsc? а скажем сишным кодом мерить вызывая функцию реализованную на асме или rdtsc надёжнее?
источник

A

Aleksandr in Ассемблер
Rdtsc надежнее. Сишным имеет смысл мерить только если счет идет на секунды
источник

d

disba1ancer in Ассемблер
в моём случае можно сделать и так чтобы шло на секунды, хотя хз сколько памяти надо скормить для этого мемсету...
источник
2021 August 31

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
почему то никто при измерении скорости не учитывает саморазгон проца при нагрузке на 1 ядро
источник

d

disba1ancer in Ассемблер
а какая разница, измеряем же относительных попугаев, ну и среднее можно по разному считать
источник

d

disba1ancer in Ассемблер
как думаешь имеет смысл взять не среднее арифметическое, а посчитать медиану?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
эт понятно, но я думаю желательно частототу залочить, иначе при разных условиях (в пределах 1 машины, разные запуски, а в друг система что то там себе выделяет из процессорного времени) показатели будут не совсем правдивые
источник

A

Aleksandr in Ассемблер
Думаю, одинаково
источник

A

Aleksandr in Ассемблер
Или повторить тест надцать раз, как это делал саенро
источник

d

disba1ancer in Ассемблер
ну не совсем, в случае с медианой у нас могут получится немного другие значения
источник

A

Aleksandr in Ассемблер
Думаю, не сильно другие, но будет интересно узнать если я ошибаюсь
источник

d

disba1ancer in Ассемблер
а сколько примерно раз стоит повторить?
источник

s

s54816 in Ассемблер
Сколько не жалко. До 1-2 секунд добей, например.
источник

d

disba1ancer in Ассемблер
ладно, я сейчас попробую мемсет на 100 метровом буфере
источник

ST

Saenro T in Ассемблер
test:
     mov    eax, 80000001h
     cpuid
     
bt     ecx, 1Bhbt     ecx, 1Bh
     bt     edx, 1Bh
     jnc    @f
     xor    eax, eax
     rdtscp
............
@@:   xor    eax, eax
     cpuid
     rdtsc
............

Если не прыгнет, то вместо cpuid+rdtsc можно юзать rdtscp
______

xor     eax, eax
rdtscp
mov     edi, eax
...some code...
xor     eax, eax
rdtscp
sub     eax, edi = результат
источник

楽園松本 in Ассемблер
rdtscp возвращает количество тактов, а это сейчас не вполне отражает скорость исполнения кода. Лично я сторонник сделать тест на час и посмотреть разницу.
источник

ST

Saenro T in Ассемблер
Будет в 60 раз больше чем за минуту😉
источник

A

Aleksandr in Ассемблер
С высоким шансом заиметь переполнение
источник

ST

Saenro T in Ассемблер
Я когда-то, ещё на 80386dx, не особо понимая (а впрочем как и сейчас) что в настройках БИОСа можно подкрутить для большей производительности, именно так и тестил — считая попугаев за 60 секунд.
В одном случае их было 1.055.233, а в другом 1.223.432 к примеру. Ну и делал выводы.
источник

С

Сергей in Ассемблер
Прально! Относительные измерения. Я так же попугаями считаю.
источник