September 4th, 2020

QuatCore

Function inlining, QuatCore-style

Вчера к вечеру меня немного "перемкнуло", я не смог сосчитать до 7. Именно на столько отрезков оказалась поделена строка 11. Собственно, посчитать их легко: 2N+1, где N- количество обнаруженных "точек", в смысле пятен. Поэтому немудрено, что случилось переполнение буфера: из этих 7 точек мы одну сразу запросили, ещё 5 уложились в буфер, а последней ткнуться было уже некуда...

Так что в принципе всё вчера отработало правильно, но всё равно не так быстро, как мне хотелось бы. Всё-таки, именно этот код есть основания вылизывать до блеска, ведь он будет выполняться свыше тысячи раз за кадр, и как минимум 10 кадров в секунду, он обязан быть быстрым!

В голову пришли ещё способы, как повысить быстродействие, и наиболее дурацкий - запихнуть одну процедуру внутрь другой, чтобы при вызове хотя бы из одного места не нужно было в действительности куда-то прыгать!

Collapse )

Сейчас возьмёмся за 11-ю строку тестового изображения, и если с ней всё в порядке, то нужно будет уже по-быстренькому "промотать" до самого конца, и затем уже по содержанию памяти разобраться, что же у нас получилось в итоге.
QuatCore

QuatCore+GPU, строка 11

Надеюсь, это будет последняя строка на этом тестовом изображении, которую действительно стоит рассмотреть подробно. На ней вся "прорва отрезков" наконец-то сойдёт на нет, и последующие строки заведомо будут вписываться "в реальное время", и ничего нового мы уже не встретим. А сейчас у нас всё "располосовано":



И устраиваем "тотализатор": обработается ли всё до конца 11-й строки, или мы опять "выпадем из реального времени"?

Collapse )