Size: a a a

Ассемблер

2021 October 02

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
тебе точно нужна скорость? каков размер массива?
источник

d

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

E

Entusiast in Ассемблер
На больших значениях будет быстрее второй вариант.
Но на значениях меньше - первый вариант будет быстрее

Это аналогично проверке GCC, что я давно здесь обсуждал. Даже не помню, что там было. Но результат таков, что на маленьких значениях - выигрывала банальная простая проверка, а GCC был медленнее. На значениях больше - проверки сложнее у GCC работали лучше.
источник

d

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

d

disba1ancer in Ассемблер
а есть инструкция на вроде bsr для sse?
источник

A

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

E

Entusiast in Ассемблер
Просто на маленьких значениях, пока будут выполняться сложные проверки (второй вариант), то первый давно уже пройдётся по нему. Однако если дать второму варианту больше значений, больше времени - у него получится перегнать..
Надеюсь, понятно обьяснил. Ну здесь что-то похожее с физикой
источник

d

disba1ancer in Ассемблер
а что делать в случае strlen?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
не понял? а что с ним надо делать?
источник

d

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

E

Entusiast in Ассемблер
Ну я это и имел ввиду
источник

E

Entusiast in Ассемблер
В общем, в зависимости от размера применяй тот или иной алгоритм

Если размер неизвестен - можно добавить регистр-счётчик, где проверять, сколько раз уже выполнился алгоритм. Изначально использовать первый вариант. Если алгоритм уже выполняется долго, перейти на второй вариант
источник

E

Entusiast in Ассемблер
Ну это, конечно, уже однозначно не по размеру будет. И слишком усложнённым всё получится
источник

d

disba1ancer in Ассемблер
а для sse есть инструкция на подобие bsr? по сути мне надо узнать номер первого байта не равного нулю
источник

楽園松本 in Ассемблер
источник

楽園松本 in Ассемблер
Почему началось сегодня?
источник

楽園松本 in Ассемблер
И как этому положить конец?
источник

E

Entusiast in Ассемблер
Сначала бы проверить, не дело ли в сроке действия сертификата
https://www.ssllabs.com/ssltest/analyze.html
источник

d

disba1ancer in Ассемблер
а чей там сертификат?
источник

d

disba1ancer in Ассемблер
часом не let's encrypt?
источник