169 похожих чатов

Тоесть можно будет data() + номер столбца + ширина = int(ARGB

цвет)

массива делать, и таким образом в одномерном массиве столбец заполнять, и при это кеш не будет страдать?

6 ответов

7 просмотров

С кэшем всё трудно. Если массив большой - будет в любом случае. Тебя только он интересует? Сам алгоритм будет медленнее, когда ты вычисляешь + номер + ширина. Если можешь этого не делать - не делай, будет быстрее.

Дмитрий-Воронин Автор вопроса
КТ315
С кэшем всё трудно. Если массив большой - будет в ...

А как не вычислять? Можно конечно адрес нулевого элемента + i в отдельную переменную вынести, и тогда придется только + width делать

Дмитрий Воронин
А как не вычислять? Можно конечно адрес нулевого э...

Просто линейно заполнять: lea eax, dword[buf] @@: mov dword[eax], 0 cmp eax, buf_end jne @b Вместо: xor ebx, ebx .gety: xor ecx, ecx .getx: mov dword[ebx*8+ecx], 0 add ecx, 1 cmp ecx, WIDTH jne .getx add ebx, 1 cmp ebx, HEIGH jne .gety

КТ315
Просто линейно заполнять: lea eax, dword[buf] @@:...

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

Дмитрий-Воронин Автор вопроса
КТ315
Просто линейно заполнять: lea eax, dword[buf] @@:...

А на C++ можно перевести?)) Я просто рисую спектр, и после того как я определюсь какие частоты и какой мощности попадают в столбец изображения. То можно выбрать самую максимальную точку в столбце изображения и закрасить этот столбец до этой точки.

Дмитрий Воронин
А на C++ можно перевести?)) Я просто рисую спектр,...

Нет, это чат по ассемблеру. Этот код просто чтобы проще понять мою мысль. Но это уже неактуально - тебе в любом случае придётся прыгать по массиву, потому что надо заполнять конкретно столбец (а столбец это y*HEIGH+x, никак линейно к нему не подобраться).

Похожие вопросы

Обсуждают сегодня

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Привет, нужен совет старших товарищей. Есть глобальная переменная var DefaultDataFolder:string; инициализируем DefaultDataFolder:='a:\_OUT\'; есть примитивная процедур...
Max Otto
11
Вопрос. Теоретический. Есть список команд. Команды отправляю в обработку некой функции, по очереди. Разные команды могут давать разные результаты после обработки. В зависимос...
Serjone
7
Всем вечера. Подскажите как лучше сделать. делаю на Д10 Например будет база данных на SQLite. в ней будет много таблиц. более 50шт Типа справочник. Содержать ID Name Id p...
Андрей Т 🐎
10
это группа токсиков или тех кто помогает?
Ибрагим
9
Я короче решил скомпилировать Nim в js, я думал он сработает как обычный транслятор. По итогу он мне создал файл с расширением js, и туда поместил кучу кода Вопрос, что это з...
𝕾𝖍𝖆𝖉𝖊 <suspense>
8
мы пытаемся подменить функцию, которая имеет меньше инструкций относительно функции, которой подменяем. https://www.reddit.com/r/jailbreakdevelopers/comments/w06ujy/mshookfun...
Óðinn
6
У кого-нибудь есть под рукой функция кодирования юникода, которая из фразы На русском сделает \u041d\u0430\u0020\u0440\u0443\u0441\u0441\u043a\u043e\u043c ?
Daniil Smolyakov
7
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Карта сайта