Вопросы по теме 'micro-optimization'

Условный оператор медленный?
Я смотрел на какой-то код с огромным оператором switch и оператором if-else для каждого случая и сразу почувствовал потребность в оптимизации. Как хороший разработчик всегда должен поступать, я решил получить некоторые точные факты о сроках и начал с...
6798 просмотров

Почему Clang `-O3` выделяет память в 2 раза быстрее, чем g++
Об использовании и злоупотреблении alloca Получил некоторые ориентиры в нижней части предыдущего вопроса. clang явно имеет лучшую реализацию в профиле оптимизатора -O3 . Что дает? Clang срезает углы? Кроме того, поскольку clang — современный...
1108 просмотров

Как можно ускорить этот Java-код?
Я пытаюсь оценить, насколько быстро Java может выполнить простую задачу: прочитать огромный файл в память, а затем выполнить какие-то бессмысленные вычисления с данными. Учитываются все типы оптимизации. Будь то переписывание кода по-другому или...
792 просмотров

Имеют ли сложные режимы адресации дополнительную нагрузку на загрузку из памяти?
Есть ли разница в производительности между этими mov инструкциями по загрузке? Имеют ли более сложные режимы адресации дополнительные накладные расходы (задержку или пропускную способность) по сравнению с простыми? # AT&T syntax...
768 просмотров

Почему использование структуры Vector3I вместо трех int намного медленнее в C #?
Я обрабатываю много данных в трехмерной сетке, поэтому я хотел реализовать простой итератор вместо трех вложенных циклов. Однако я столкнулся с проблемой производительности: сначала я реализовал простой цикл, используя только переменные int x, y и z....
221 просмотров

Почему jnz не считает цикл?
На интернет-ресурсе я обнаружил, что у IvyBridge 3 ALU. Поэтому я пишу небольшую программу для тестирования: global _start _start: mov rcx, 10000000 .for_loop: ; do { inc rax inc rbx dec rcx jnz .for_loop...
141 просмотров

Можно ли убедить clang автоматически векторизовать этот код без использования встроенных функций?
Представьте, что у меня есть эта наивная функция для обнаружения перекрытия сфер. Смысл этого вопроса на самом деле не в том, чтобы обсудить лучший способ проверки попаданий на сферы, так что это просто для иллюстрации. inline bool...
381 просмотров

Загрузка всей строки кэша сразу, чтобы избежать конкуренции за несколько ее элементов
Предполагая, что есть три части данных, которые мне нужны из строки кэша с высокой конкуренцией, есть ли способ загрузить все три вещи «атомарно», чтобы избежать более одного обращения к любому другому ядру? На самом деле мне не нужна гарантия...
547 просмотров

80286: Какой самый быстрый способ умножить на 10?
Чтобы умножить число на любое кратное 2, я сдвину его столько раз. Есть ли такая техника, чтобы умножить число на 10 за меньшее количество циклов?
110 просмотров
schedule 18.09.2022

Можно ли оставить поля унифицированными с помощью назначенных инициализаторов?
Рассмотрим следующую структуру и функцию для создания структуры: #define MAX_ELEMS 1000 struct stuff { double magic; bool is_valid[MAX_ELEMS]; double values[MAX_ELEMS]; }; struct stuff make_stuff(double magic) { return (struct stuff){...
78 просмотров

Оптимальный алгоритм определения расстояния между одной точкой и всеми остальными в сетке
В сетке пикселей я хочу вычислить евклидово расстояние от одного выбранного пикселя до всех остальных пикселей. Это также можно рассматривать как нахождение евклидова расстояния между одной точкой в ​​системе координат 2D-сетки и всеми другими...
278 просмотров

Оптимизация алгоритма с O(2N) до O(N) делает его вдвое быстрее?
В нотации Big-O O(N) и O(2N) описывают одну и ту же сложность. То есть скорость роста временной или пространственной сложности алгоритма при O(2N) по существу равна O(N). Это особенно заметно по сравнению с алгоритмом со сложностью, подобной O(N^2),...
109 просмотров