|
|
  |
Разработка findcolor, findimage, Pure lua |
|
|
| DarkMaster |
4.6.2022, 2:12
|
          
Модератор UOPilot
Сообщений: 9.766
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 30008
Пользователь №: 11.279

|
По чтению всмысле в кэш загонит и не выкинет раньше времени. Все парюсь по сколько байт с памяти читается минимально сейчас.
По ветвлению не знаю. Для меня реально загадка, как проц может просчитать ветвления поиска по сути одного дапа рандома в другом дампе рандома еще и паттернами со смещением (y координата). Да касательно имиджа там условно есть за что цеплятся в плане именно оптимизаций, которые сделал в свое время кнайт, вот только беда в том, что эти оптимизации иногда вылетают в трубу и искать приходится влоб (например при ч/б изображении). Теоретически можно даже убрать переход по Y координате и искать линейно, но вот только логика и запоминание результатов может при этом выполнятся реально дольше, чем прямой перебор. Кароче тестить надо. Сейчас это вилами по воде.
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____ Контакт актуален, подпись актуальна.
|
|
|
|
|
|
| Cockney |
4.6.2022, 13:13
|
       
Master
Сообщений: 1.404
Регистрация: 22.6.2013 Группа: Пользователи Наличность: 22674
Пользователь №: 16.156

|
Цитата(DarkMaster @ 4.6.2022, 12:13)  дык там весь цикл один сплошной переход фактически без тела. Учитывая то, что иф статистически будет ложью, то все, что можно напредсказывать - делать следующий иф. В итоге получаем по сути прямой перебор. Хз в моем понимании все-таки тут особо предсказание ветвлений работать не будет, хотя могу и ошибаться.
Ну как бы есть разделение: то что видит компилятор, его задача сделать так, чтобы код был предсказуем по максимуму (тут как он оптимизирует и строит код вообще), и процессор - он в любом случае будет пытаться предсказать куда прыгать, ибо нет у него информации больше.
|
|
|
|
|
|
| Cockney |
4.6.2022, 14:33
|
       
Master
Сообщений: 1.404
Регистрация: 22.6.2013 Группа: Пользователи Наличность: 22674
Пользователь №: 16.156

|
Цитата(DarkMaster @ 4.6.2022, 14:19)  То, что он будет пытаться это понятно. Впорос в том будут ли эти попытки рабочими (IMG: style_emoticons/default/smile.gif) Спасибо за линки. Так я же пишу, что чем лучше сгенерирован код и чем больше "удачных" данных, тем лучше результат. например, условно, 2 раза был переход по result[0] < result[1], а 6 раз нет - результат такой себе, кеш предиктора сбит и он вынужден просчитывать переход заново. А вот в ситуации когда все 8 раз был переход по result[0] < result[1] - все супер, следующий прыжок скорее всего будет вытянут из кеша без проверок. Тут нельзя ничего гарантировать, надо просто программу приводить к минимуму по сложности ветвлений (циклы тоже ветвления) джит работает по такому же принципу: чем горячее блок кода, тем он больше вероятность реальной компиляции, но только с тем набором аргументов (если мы говорим о функции), которые чаще всего используются
|
|
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|