Вопросы по теме 'micro-optimization'
Классификация потоков CPU-Core Функция
Я собираюсь написать многопоточную систему обмена сообщениями с общей памятью для доставки сверхбольших объемов сообщений между процессами. Сообщения будут исходить из рабочих потоков веб-сервера. Я хотел бы использовать локальность кеша ЦП, ядра...
350 просмотров
schedule
05.05.2023
Два тела петли или одно (результат идентичен)
Я давно задавался вопросом, что более эффективно с точки зрения лучшего использования кешей ЦП (которые, как известно, выигрывают от локальности ссылки) - два цикла, каждый из которых повторяет один и тот же математический набор чисел, каждый с другим...
1094 просмотров
schedule
25.05.2023
цикл for или цикл while, что быстрее?
Возможный дубликат: Какой цикл быстрее, пока или для
мы можем использовать цикл for, а также циклы while для той же цели, что быстрее
например: я хочу зациклить элемент 1000000000 раз, я должен использовать цикл for или while?...
4098 просмотров
schedule
01.05.2022
Микрооптимизация с локальной переменной длины контура?
Во многих языках программирования и их микрооптимизациях я видел, что объявление длины массива в цикле for влияет на производительность, особенно в PHP и JavaScript:
for i = 0, length = arr.length; i < length; ++i
Я видел, как этот формат...
213 просмотров
schedule
20.03.2024
введите vs нажмите ebp; mov ebp, esp; sub esp, imm и leave vs mov esp, ebp; поп-эбп
В чем разница между enter и
push ebp
mov ebp, esp
sub esp, imm
инструкции? Есть ли разница в производительности? Если да, то что быстрее и почему компиляторы всегда используют последнее?
Аналогично с leave и
mov esp, ebp
pop...
12168 просмотров
schedule
19.09.2023
Конечные переменные в методе onDraw()
У меня есть класс, который расширяет View и переопределяет метод onDraw(Canvas canvas) . Это представление запускает анимацию, поэтому onDraw будет вызываться много раз в секунду. Рассмотрим следующий пример...
@Override
protected void...
325 просмотров
schedule
18.06.2022
Быстрый способ копирования памяти с переводом - ARGB в BGR
Обзор
У меня есть буфер изображений, который мне нужно преобразовать в другой формат. Буфер исходного изображения состоит из четырех каналов, 8 бит на канал: альфа, красный, зеленый и синий. Целевой буфер состоит из трех каналов по 8 бит на канал:...
9152 просмотров
schedule
24.04.2022
Есть ли инструмент для проверки краткости программы на языке C?
Например, я хочу проверить, может ли следующий код быть более кратким или нет:
for(i = 0; i < map->size; i++){
if(0 < map->bucket[i].n){
p = map->bucket[i].list;
while(p){
h = hash(p->key) % n;...
282 просмотров
schedule
09.03.2024
Предотвращает ли чтение массива int из разделяемой памяти конфликты банков?
Я разрабатываю ядро CUDA, которое будет запускаться с 16 потоками на блок потоков. У меня есть массив N int в общей памяти (т.е. на блок потока), который я хочу обработать.
Если шаблон доступа потоков является последовательным в массиве,...
363 просмотров
schedule
14.01.2023
Микрооптимизация DateTime.DayOfWeek
Прежде всего:
Я задаю этот вопрос просто для удовольствия и очень хочу научиться. Я должен признать, что люблю возиться с микрооптимизациями (хотя они никогда не приводили к какому-либо значительному увеличению скорости ни в одной из моих...
11002 просмотров
schedule
12.05.2023
Быстрее ли обрезать список, сделав его равным срезу, или используя del?
Предположим, у меня есть list TruncList с некоторым количеством элементов, превышающим n . Если я хочу удалить n элементов из конца этого списка, будет ли быстрее переопределить список как фрагмент самого себя , сохранив нужные элементы, как...
2206 просмотров
schedule
08.09.2022
Эффективность: объекты внутри массивов или массивы внутри объектов?
Учитывая одинаковое количество слоев массива/объекта, каждый индекс указывает на одни и те же вещи, каков наилучший порядок вложения массивов и объектов?
Я делаю игру на основе сетки, и мне нужно хранить несколько фрагментов информации о каждом...
104 просмотров
schedule
30.03.2023
x86-64 Относительная производительность jmp
В настоящее время я выполняю задание, которое измеряет производительность различных команд x86-64 (синтаксис at&t).
Команда, с которой я несколько смущен, - это команда «безусловный jmp». Вот как я это реализовал:
.global uncond
uncond:...
1057 просмотров
schedule
16.04.2023
Могут ли две инструкции выполняться в одном цикле, если один и тот же регистр используется как вход и выход соответственно?
Например, могут ли эти две инструкции начать выполнение в одном и том же цикле или они мешают друг другу?
MOV %RAX, (ADDR) # AT&T syntax: store rax
POP %RAX
249 просмотров
schedule
28.10.2023
Оптимизация кода C++ с использованием выражений вместо переменных
У меня вопрос по созданию оптимальной программы на C++.
У меня есть функция, которая вычисляет такие выражения, как:
c= a/2
c = (a*b)/2
c = (a/2) + b
и т. д. лучше использовать переменную для хранения этих значений или просто использовать...
158 просмотров
schedule
12.07.2023
Умножение с константой - imul или shl-add-combination
Этот вопрос о том, как мы умножаем целое число на константу. Итак, давайте рассмотрим простую функцию:
int f(int x) {
return 10*x;
}
Как лучше всего оптимизировать эту функцию, особенно когда она встроена в вызывающую программу?...
1635 просмотров
schedule
17.08.2023
Эффективное декодирование длины символа UTF-8 для ненулевого символа в 32-битном регистре
Я сохраняю символ UTF-8 в eax , а позже, при обработке, мне нужно знать, сколько байтов составляет символ.
Я сузил этот вопрос, который сводит к минимуму сдвиги и маски, и хотел знать, не упустил ли я где-нибудь какой-нибудь хитрый трюк?...
464 просмотров
schedule
05.04.2023
Почему скомпилированная лямбда-сборка поверх Expression.Call немного медленнее, чем делегат, который должен делать то же самое?
Почему скомпилированная лямбда-сборка поверх Expression.Call немного медленнее, чем делегат, который должен делать то же самое? И как этого избежать?
Объяснение результатов BenchmarkDotNet. Мы сравниваем CallBuildedReal vs CallLambda ; два...
431 просмотров
schedule
10.06.2022
Полное использование трубопроводов на озере Каби
(Последующий обзор кода вопрос здесь с более подробной информацией о контексте этой петли.)
Окружающая среда:
виндовс 7 х64
Сообщество VS 2017
Ориентация кода x64 на Intel i7700k (kaby lake)
Я не пишу много кода на ассемблере, а...
332 просмотров
schedule
18.06.2023
Самая быстрая реализация простого виртуального шаблона типа наблюдателя на с ++?
Я изо всех сил пытаюсь реализовать альтернативу для vtables, используя перечисления и тонну макро-магии, которая действительно начинает мешать моему мозгу. Я начинаю думать, что иду не по правильному пути, поскольку код становится все уродливее и...
536 просмотров
schedule
16.02.2022